Python爬蟲(chóng)數(shù)據(jù)的分類及json數(shù)據(jù)使用小結(jié)
數(shù)據(jù)的結(jié)構(gòu)化分類
一般來(lái)講對(duì)我們而言,需要抓取的是某個(gè)網(wǎng)站或者某個(gè)應(yīng)用的內(nèi)容,提取有用的價(jià)值。內(nèi)容一般分為三部分,結(jié)構(gòu)化的數(shù)據(jù)、半結(jié)構(gòu)化的數(shù)據(jù)和非機(jī)構(gòu)化數(shù)據(jù)。
1.結(jié)構(gòu)化數(shù)據(jù):
可以用統(tǒng)一的結(jié)構(gòu)加以表示的數(shù)據(jù)。可以使用關(guān)系型數(shù)據(jù)庫(kù)表示和存儲(chǔ),表現(xiàn)為二維形式的數(shù)據(jù),一般特點(diǎn)是:數(shù)據(jù)以行為單位,一行數(shù)據(jù)表示一個(gè)實(shí)體的信息,每一行的數(shù)據(jù)的屬性是相同的。
2.半結(jié)構(gòu)化數(shù)據(jù):
結(jié)構(gòu)化數(shù)據(jù)的一種形式,并不符合關(guān)系型數(shù)據(jù)庫(kù)或其他數(shù)據(jù)表的形式關(guān)聯(lián)起來(lái)的數(shù)據(jù)模型結(jié)構(gòu),但包含相關(guān)標(biāo)記,用來(lái)分隔語(yǔ)義元素以及對(duì)記錄和字段進(jìn)行分層。因此他也被成為自描述的結(jié)構(gòu)。常見(jiàn)的半結(jié)構(gòu)數(shù)據(jù)有:html,xml和json等、實(shí)際上是以樹(shù)或者圖的結(jié)構(gòu)來(lái)存儲(chǔ)的。
對(duì)于半結(jié)構(gòu)化數(shù)據(jù),節(jié)點(diǎn)中屬性的順序是不重要的,不同的半結(jié)構(gòu)化數(shù)據(jù)的屬性的個(gè)數(shù)是不一樣的。這樣的數(shù)據(jù)格式,可以自由的表達(dá)很多有用的信息,包含自描述信息。所以半結(jié)構(gòu)化數(shù)據(jù)的擴(kuò)展性很好,特別適合于在互聯(lián)網(wǎng)中大規(guī)模傳播。
3.非結(jié)構(gòu)化數(shù)據(jù)
就是沒(méi)有固定的結(jié)構(gòu)。各種文檔,圖片,視頻或者音頻都屬于非結(jié)構(gòu)化數(shù)據(jù)。對(duì)于這類數(shù)據(jù),我們一般直接整體進(jìn)行存儲(chǔ),而且一般存儲(chǔ)為二進(jìn)制形式。
json數(shù)據(jù)
json(JavaScript Object Notation,JS對(duì)象標(biāo)記)是一種輕量級(jí)的數(shù)據(jù)交換格式。他基于ECMAScript(w3c制定的JS規(guī)范)的一個(gè)子集,采用完全獨(dú)立于編程語(yǔ)言的文本格式來(lái)存儲(chǔ)和表示數(shù)據(jù)。簡(jiǎn)介和清晰的層次結(jié)構(gòu)使得JSON成為理想的數(shù)據(jù)交換語(yǔ)言。
特點(diǎn):易于閱讀、易于機(jī)器生成、有效提升網(wǎng)絡(luò)速度。
JSON語(yǔ)法規(guī)則:在JS語(yǔ)言中,一切都是對(duì)象。因此,任何支持的類型都可以通過(guò)json來(lái)表示。例如字符串、數(shù)字,對(duì)象,數(shù)組。
Js中對(duì)象和數(shù)組是比較特殊并且常用的兩種類型:
1.對(duì)象表示為鍵值對(duì){name:'zhangsan',age:'7'}
2.數(shù)據(jù)有逗號(hào)分隔[1,2,3,4,5]
3.花括號(hào)保存對(duì)象
4.方括號(hào)保存數(shù)組。
js的對(duì)象就相當(dāng)于python中的字典
js的數(shù)組就相當(dāng)于Python中的列表
因?yàn)閖son用來(lái)存儲(chǔ)js的對(duì)象或者數(shù)組,所以在Python中我們可以將json轉(zhuǎn)化為list或者dict。
解析json的包json:
json.dumps(python的list或者dict)---->(返回值)---->json字符串。
json.loads(json字符串)------>(返回值)----->python的list或者dict.
json.dump(list/dict,fp)—>list,或者字典保存到j(luò)son文件中。
json.load(fp)—>list/dict:從json文件中讀出json數(shù)據(jù)。
json鍵值對(duì)是用來(lái)保存js對(duì)象的一種方式,和js對(duì)象的寫(xiě)法頁(yè)大同小異,比如:
{“firstName”:“Json”,“Class”:“aid1111”}等價(jià)于下面這條js語(yǔ)句:{firstName:“Json”,Class:“aid1111”}。
很多人搞不清楚json和js對(duì)象的關(guān)系,甚至誰(shuí)是誰(shuí)都不清楚。其實(shí)可以這么理解:【JSON是JS對(duì)象的字符串表達(dá)式,他使用文本形式表示一個(gè)JS對(duì)象的信息,本質(zhì)是一個(gè)字符串。】
如var obj = {a:“hello”,b:“World”}這是一個(gè)js對(duì)象。注意,鍵名也是可以用引號(hào)包裹的var json = ' {“a”:“hello”,“b”:“World”}'這是一個(gè)json字符串,本質(zhì)上是一個(gè)字符串。
JSON作為數(shù)據(jù)包格式傳輸?shù)臅r(shí)候具有更高的效率,這是因?yàn)镴SON不想xml那樣具有嚴(yán)格的閉合標(biāo)簽,這就讓有效數(shù)據(jù)量與總數(shù)據(jù)包比大大提升,從而減少同等數(shù)據(jù)流量的情況下,網(wǎng)絡(luò)的傳輸?shù)膲毫Υ蟠鬁p低。
以上就是Python爬蟲(chóng)數(shù)據(jù)的分類及json數(shù)據(jù)使用小結(jié)的詳細(xì)內(nèi)容,更多關(guān)于Python爬蟲(chóng)數(shù)據(jù)的分類及json數(shù)據(jù)使用的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Pytorch使用PIL和Numpy將單張圖片轉(zhuǎn)為Pytorch張量方式
這篇文章主要介紹了Pytorch使用PIL和Numpy將單張圖片轉(zhuǎn)為Pytorch張量方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05Python tkinter實(shí)現(xiàn)春節(jié)煙花效果demo
這篇文章主要為大家介紹了Python實(shí)現(xiàn)春節(jié)煙花效果demo,本文為大家提供了兩種實(shí)現(xiàn)方式代碼,詳細(xì)的實(shí)現(xiàn)一場(chǎng)浪漫的煙花秀,有需要的朋友可以借鑒參考下2024-01-01Python?Pandas實(shí)現(xiàn)將嵌套JSON數(shù)據(jù)轉(zhuǎn)換DataFrame
對(duì)于復(fù)雜的JSON數(shù)據(jù)進(jìn)行分析時(shí),通常的做法是將JSON數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為Pandas?DataFrame,所以本文就來(lái)看看將嵌套JSON數(shù)據(jù)轉(zhuǎn)換為Pandas?DataFrame的具體方法吧2024-01-01Python中的collections集合與typing數(shù)據(jù)類型模塊
這篇文章介紹了Python中的collections集合與typing數(shù)據(jù)類型模塊,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05用Python讀取幾十萬(wàn)行文本數(shù)據(jù)
今天小編就為大家分享一篇關(guān)于用Python讀取幾十萬(wàn)行文本數(shù)據(jù),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12使用PowerShell實(shí)現(xiàn)批量修改或替換文件名
這篇文章主要為大家介紹了基于PowerShell語(yǔ)言,對(duì)文件夾中全部文件的名稱加以批量替換、修改的方法,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2023-04-04django美化后臺(tái)django-suit的安裝配置操作
這篇文章主要介紹了django美化后臺(tái)django-suit的安裝配置操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07python對(duì)指定目錄下文件進(jìn)行批量重命名的方法
這篇文章主要介紹了python對(duì)指定目錄下文件進(jìn)行批量重命名的方法,涉及Python中replace及join方法的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04