最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 結(jié)構(gòu)化字符串中提取數(shù)據(jù)詳情

 更新時(shí)間:2022年08月19日 14:44:31   作者:盼小輝丶  
這篇文章主要介紹了Python 結(jié)構(gòu)化字符串中提取數(shù)據(jù)詳情,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下

前言

在許多自動(dòng)化任務(wù)中,我們都需要從已知格式結(jié)構(gòu)化的輸入文本中提取相關(guān)信息。例如,我們可能需要在一段電影評(píng)論數(shù)據(jù)中提取觀影時(shí)間、電影名、評(píng)分等信息,以便存儲(chǔ)后進(jìn)行進(jìn)一步分析。在本節(jié)中,我們將以提取電影評(píng)論數(shù)據(jù)信息為例講解如何從結(jié)構(gòu)化字符串中提取數(shù)據(jù)。

從結(jié)構(gòu)化字符串中提取數(shù)據(jù)

假設(shè)我們具有以下結(jié)構(gòu)的電影評(píng)分?jǐn)?shù)據(jù),我們需要解析存儲(chǔ)觀影時(shí)間、電影名、評(píng)分等信息:

[<Timestamp>] -?MOVIE ID: <movie id>?- MOVIE NAME: <movie name>?- SCORE: <score of the movie>

例如,一條可能的電影評(píng)分記錄如下所示:

[2022-08-01T11:58:41.504054] - MOVIE ID: 00015?- MOVIE NAME: Inception?- SCORE: 8.5

其中,我們使用標(biāo)準(zhǔn)格式表示時(shí)間和日期,這在計(jì)算機(jī)中廣泛應(yīng)用。

字符串解析

首先,導(dǎo)入所需庫(kù),并給出所需解析的用戶對(duì)電影的評(píng)分記錄:

>>> import delorean
>>> from decimal import Decimal
>>> text = '[2022-08-01T11:58:41.504054] - MOVIE ID: 00015 - MOVIE NAME: Inception - SCORE: 8.5'

將評(píng)分記錄使用 split() 方法拆分為多個(gè)部分,我們使用 “-” 作為分隔符拆分每個(gè)元素,將評(píng)分記錄拆分為 4 部分——時(shí)間戳、電影 ID、電影名和電影評(píng)分,便于之后將它們解析為正確的類(lèi)型:

>>> divided_text = text.split(' - ')
>>> divided_text
['[2022-08-01T11:58:41.504054]', 'MOVIE ID: 00015', 'MOVIE NAME: Inception', 'SCORE: 8.5']
>>> timestamp, movie_id, movie_name, score = divided_text

將時(shí)間戳解析為 datetime 對(duì)象。由于在評(píng)分記錄中時(shí)間戳包含在方括號(hào)中,為了正確解析時(shí)間戳,需要去掉括號(hào),然后使用 delorean 模塊將其解析為日期時(shí)間對(duì)象:

>>> timestamp = delorean.parse(timestamp.strip('[]'))
>>> timestamp
Delorean(datetime=datetime.datetime(2022, 1, 8, 11, 58, 41, 504054), timezone='UTC')

將 movie_id 解析為整數(shù)。為了解析電影 ID,需要使用冒號(hào)作為分隔符拆分 movie_id,然后,將最后一個(gè)元素解析為整數(shù):

>>> movie_id = int(movie_id.split(':')[-1])
>>> movie_id
15

將評(píng)分解析為 Decimal 類(lèi)型。為了解析電影評(píng)分,我們同樣使用冒號(hào)作為分隔符拆分 score,并將其解析為十進(jìn)制字符對(duì)象 Decimal (這是由于此值解析為浮點(diǎn)類(lèi)型會(huì)改變精度):

>>> score = Decimal(score.split(':')[-1])
>>> score
Decimal('8.5')

為了便于解析和聚合,我們可以將所解析的數(shù)據(jù)組合在一起成為一個(gè)對(duì)象。例如,我們可以通過(guò)在 Python 代碼中定義一個(gè)類(lèi),來(lái)方便的解析和聚合結(jié)構(gòu)化字符串中的數(shù)據(jù):

class Movie(object):
????def __init__(self, timestamp, movie_id, movie_name, score):
????????self.timestamp = timestamp
????????self.movie_id = movie_id
????????self.movie_name = movie_name
????????self.score = score
        
????def __repr__(self):
????????return '<Movie ({}, {}, {})>'.format(self.timestamp, self.movie_id, self.movie_name, self.score)

????@classmethod
????def parse(cls, text):
????????'''
????????Parse from a text with the format
????????[<Timestamp>] - MOVIE ID: <movie id> - MOVIE NAME: <movie name> - SCORE: <score of the movie>
????????to a Movie object
????????'''
????????divided_text = text.split(' - ')
????????timestamp, movie_id, movie_name, score = divided_text
????????timestamp = delorean.parse(timestamp.strip('[]'))
????????movie_id = int(movie_id.split(':')[-1])
????????movie_name = movie_name.split(':')[-1]
????????score = Decimal(score.split(':')[-1])
????????return cls(timestamp=timestamp, movie_id=movie_id, movie_name=movie_name, score=score)

定義 Movie 類(lèi)完成后,我們可以使用以下方式方便的對(duì)評(píng)分記錄進(jìn)行解析:

>>> Movie.parse(text)
<Movie (Delorean(datetime=datetime.datetime(2022, 1, 8, 11, 58, 41, 504054), timezone='UTC'), 15, ?Inception)>

到此這篇關(guān)于Python 結(jié)構(gòu)化字符串中提取數(shù)據(jù)詳情的文章就介紹到這了,更多相關(guān)Python 提取數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • xshell會(huì)話批量遷移到mobaxterm的工具(python小工具)

    xshell會(huì)話批量遷移到mobaxterm的工具(python小工具)

    這篇文章主要介紹了xshell會(huì)話批量遷移到mobaxterm的工具,使用方法也超級(jí)簡(jiǎn)單,本文通過(guò)python代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • Python strip lstrip rstrip使用方法

    Python strip lstrip rstrip使用方法

    Python中的strip用于去除字符串的首位字符,同理,lstrip用于去除左邊的字符,rstrip用于去除右邊的字符。這三個(gè)函數(shù)都可傳入一個(gè)參數(shù),指定要去除的首尾字符。
    2008-09-09
  • Python獲取B站粉絲數(shù)的示例代碼

    Python獲取B站粉絲數(shù)的示例代碼

    這篇文章主要介紹了Python獲取B站粉絲數(shù)的示例代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • Python列表list常用內(nèi)建函數(shù)實(shí)例小結(jié)

    Python列表list常用內(nèi)建函數(shù)實(shí)例小結(jié)

    這篇文章主要介紹了Python列表list常用內(nèi)建函數(shù),結(jié)合實(shí)例形式總結(jié)分析了Python列表list常見(jiàn)內(nèi)建函數(shù)的功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-10-10
  • Python之多線程退出與停止的一種實(shí)現(xiàn)思路

    Python之多線程退出與停止的一種實(shí)現(xiàn)思路

    這篇文章主要介紹了Python之多線程退出與停止的一種實(shí)現(xiàn)思路,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • python+matplotlib實(shí)現(xiàn)鼠標(biāo)移動(dòng)三角形高亮及索引顯示

    python+matplotlib實(shí)現(xiàn)鼠標(biāo)移動(dòng)三角形高亮及索引顯示

    這篇文章主要介紹了Python+matplotlib實(shí)現(xiàn)鼠標(biāo)移動(dòng)三角形高亮及索引顯示,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • python?logging多進(jìn)程多線程輸出到同一個(gè)日志文件的實(shí)戰(zhàn)案例

    python?logging多進(jìn)程多線程輸出到同一個(gè)日志文件的實(shí)戰(zhàn)案例

    這篇文章主要介紹了python?logging多進(jìn)程多線程輸出到同一個(gè)日志文件的實(shí)戰(zhàn)案例,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • Python中的enum的使用方法

    Python中的enum的使用方法

    這篇文章主要介紹了Python中的enum的使用方法,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助
    2022-08-08
  • Python自動(dòng)化測(cè)試框架之unittest使用詳解

    Python自動(dòng)化測(cè)試框架之unittest使用詳解

    unittest是Python自動(dòng)化測(cè)試框架之一,提供了一系列測(cè)試工具和接口,支持單元測(cè)試、功能測(cè)試、集成測(cè)試等多種測(cè)試類(lèi)型。unittest使用面向?qū)ο蟮乃枷雽?shí)現(xiàn)測(cè)試用例的編寫(xiě)和管理,可以方便地?cái)U(kuò)展和定制測(cè)試框架,支持多種測(cè)試結(jié)果輸出格式
    2023-04-04
  • Python實(shí)現(xiàn)批量導(dǎo)入1000條xlsx數(shù)據(jù)

    Python實(shí)現(xiàn)批量導(dǎo)入1000條xlsx數(shù)據(jù)

    本文主要介紹了Python實(shí)現(xiàn)批量導(dǎo)入1000條xlsx數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02

最新評(píng)論

顺平县| 綦江县| 麦盖提县| 罗甸县| 肃宁县| 门头沟区| 祁门县| 凤山市| 宜川县| 长岛县| 巩留县| 越西县| 垣曲县| 临武县| 息烽县| 治多县| 建平县| 根河市| 苍溪县| 华池县| 民县| 绿春县| 公主岭市| 永泰县| 孙吴县| 长乐市| 太和县| 汶川县| 县级市| 鸡东县| 海原县| 澄城县| 平江县| 宣化县| 布拖县| 东乌珠穆沁旗| 新乡市| 共和县| 皮山县| 邢台市| 北川|