日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python数据解析

發(fā)布時(shí)間:2023/12/14 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python数据解析 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

Python語言在人工智能以及計(jì)算機(jī)視覺領(lǐng)域十分熱門,它處理數(shù)據(jù)的能力很出色,兼容各種常用的數(shù)據(jù)類型解析。程序無非就是一系列數(shù)據(jù)操作行為的集合,從輸入到輸出以求得人們期望的結(jié)果。Python在執(zhí)行效率和開發(fā)效率中找到平衡點(diǎn),很適合快速開發(fā)算法復(fù)雜,數(shù)據(jù)處理量大的應(yīng)用。高效率的數(shù)據(jù)處理能力離不開結(jié)構(gòu)化的數(shù)據(jù)交互,python當(dāng)然對CSV,JSON、XML這些常用的結(jié)構(gòu)化數(shù)據(jù)類型是完美兼容的。

Python CSV解析

CSV逗號(hào)分隔值(Comma-Separated Values,CSV,有時(shí)也稱為字符分隔值,因?yàn)榉指糇址部梢圆皇嵌禾?hào)),它通常用于在電子表格軟件和純文本之間交互數(shù)據(jù),其文件以純文本形式存儲(chǔ)表格數(shù)據(jù)(數(shù)字和文本)。從真正意義上說它并不是結(jié)構(gòu)化的數(shù)據(jù),而僅僅是一些用逗號(hào)分隔的原始字符串。

Python中對于特定的一些簡單CSV文件用str.split(‘,’)就能滿足要求,但是不推薦這么做,因?yàn)槟承┳侄沃悼赡艽嬖谇短钻P(guān)系。Python有專門用于解析和生成的CSV的庫,如csv模塊。

Python應(yīng)用csv樣例

#! /usr/bin/env pythonimport csv from distutils.log import warn as printf DATA = (('id', 'name', 'age','sex','wage'),(1, '小李', 24, 'm', '8000'),(2, '小王', 25, 'm', '6000'),(3, '小杜', 23, 'w', '6000'), ) printf('*** Write CSV DATA') f = open('wageinfo.csv','w',newline='') writer = csv.writer(f) for record in DATA:writer.writerow(record)print(record) f.close()printf('read csv data') f = open('wageinfo.csv','r') reader = csv.reader(f) for id,name,age,sex,wage in reader:printf('id %s: name: %s age: %s sex: %s wage: %s' %(id,name,age,sex,wage)) f.close()

Python JSON數(shù)據(jù)解析

JSON(JavaScript Object Notation, JS 對象簡譜)是輕量級(jí)的數(shù)據(jù)交換方式,也是以人類易讀懂的方式傳輸結(jié)構(gòu)化數(shù)據(jù),這使得它在網(wǎng)絡(luò)傳輸方面應(yīng)用很廣,前后端的數(shù)據(jù)交換格式通常也是JSON,python這門在網(wǎng)路爬蟲方面性能優(yōu)異的語言當(dāng)然也會(huì)完美支持JSON的解析,在程序中引用json模塊即可。

JSON本質(zhì)是字符串,它通過鍵/值(key/value)的方式將數(shù)據(jù)結(jié)構(gòu)化,鍵/值對組合中的鍵名寫在前面并用雙引號(hào) "" 包裹,使用冒號(hào) : 分隔,然后緊接著值,當(dāng)然也可以進(jìn)行多層嵌套以實(shí)現(xiàn)更為復(fù)雜的數(shù)據(jù)結(jié)構(gòu)類型。

Python應(yīng)用JSON樣例

#! /usr/bin/env pythonfrom distutils.log import warn as printf from json import dumps from pprint import pprintBOOKs = {'2019010101':{'tilte':'Core Python Programming','edition':2,'year':2019,},'2019010102':{'title':'Python web Development with Django','authors':['Jeff Forcier','Pual Bissex','Wesley Chun'],'year':2019,},'2019010103':{'title':'Python Fundamenttals','year':2019,}, } printf(' RAW DICT') printf('BOOKs')printf('\n PRETTY_PRINTEDDICT') pprint(BOOKs)printf('\n RAW JSON') printf(dumps(BOOKs))printf('\n PRETTY_PRINTEDJSON') printf(dumps(BOOKs,indent=4))

Python XML數(shù)據(jù)解析

XML 指可擴(kuò)展標(biāo)記語言(eXtensible Markup Language),是一種比較老的結(jié)構(gòu)化數(shù)據(jù)格式,相比JSON來說還是比較難一眼就看清它的數(shù)據(jù)內(nèi)容的,在高級(jí)語言程序中通常有相應(yīng)的解析器來實(shí)現(xiàn)對XML格式化數(shù)據(jù)操作。

XML文檔與HTML非常類似,但XML并不是HTML的替代,它們設(shè)計(jì)目的不同,XML 被設(shè)計(jì)用來傳輸和存儲(chǔ)數(shù)據(jù),其焦點(diǎn)是數(shù)據(jù)的內(nèi)容,而HTML 被設(shè)計(jì)用來顯示數(shù)據(jù),其焦點(diǎn)是數(shù)據(jù)的外觀。但它們的結(jié)構(gòu)類似,由一些元素和屬性構(gòu)成。

Python應(yīng)用XML樣例

#! /usr/bin/env pythonfrom xml.etree.ElementTree import Element,SubElement,tostring from xml.dom.minidom import parseStringBOOKs = {'2019010101':{'tilte':'Core Python Programming','edition':2,'year':2019,},'2019010102':{'title':'Python web Development with Django','authors':['Jeff Forcier','Pual Bissex','Wesley Chun'],'year':2019,},'2019010103':{'title':'Python Fundamenttals','year':2019,}, }books = Element('books') for isbn,info in BOOKs.items():book = SubElement(books,'book')info.setdefault('authors','Wesley Chun')info.setdefault('edition',1)for key,val in info.items():SubElement(book,key).text = ', '.join(str(val).split(':'))xml = tostring(books) print (' RAW XML') print (xml)print ('\nPRETTY_PRINTED XML') dom = parseString(xml) print (dom.toprettyxml(' '))print (' FLAT STRUCTURE') for elmt in books.getiterator():print (elmt.tag, '_',elmt.text)print ('\n TITLES ONLY') for book in books.findall('.//title'):print (book.text)

總結(jié)

Python在人工智能以及計(jì)算機(jī)視覺領(lǐng)域十分熱門,它強(qiáng)大的類庫支持對快速開發(fā)應(yīng)用提供了可能性,相比于C/C++開發(fā)來說,它只需要一個(gè)簡單的文件編輯工具,甚至連編譯都不用就能運(yùn)行代碼,帶你探索新世界。它既有近似于底層C/C++的運(yùn)行效率,也有JAVA這種高級(jí)語言的面向?qū)ο箝_發(fā)效率,簡直perfect,記2018年末于廣州。

總結(jié)

以上是生活随笔為你收集整理的Python数据解析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。