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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

【Python爬虫学习笔记6】JSON文件存储

發(fā)布時間:2025/4/16 javascript 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python爬虫学习笔记6】JSON文件存储 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

JSON簡介

JSON(全稱JavaScript Obejct Notation,JavaScript對象標記),基于 ECMAScript (w3c制定的js規(guī)范)的一個子集,采用完全獨立于編程語言的文本格式,通過對象和數(shù)組的組合來表示數(shù)據(jù),構(gòu)造方法簡潔且其結(jié)構(gòu)化程度高,是一種輕量級的數(shù)據(jù)交換格式。

在JSON中,支持很多數(shù)據(jù)類型,包括有對象、數(shù)組、整型、浮點型、布爾型、NULL類型以及字符串類型(由于是JSON基于ES,在python中,字符串必須要用雙引號,不能用單引號),而這些多個數(shù)據(jù)之間使用逗號分開。不過從本質(zhì)上來說,JSON就是一個字符串。

在這些所支持的數(shù)據(jù)類型里,對象和數(shù)組是比較特殊且常用的兩種類型:

對象:在JavaScript中使用花括號{}包裹起來的內(nèi)容,數(shù)據(jù)結(jié)構(gòu)為{key:value…}的鍵值對結(jié)構(gòu),類似于python中的字典。

數(shù)組:在JavaScript中使用方括號[]包裹起來的內(nèi)容,數(shù)據(jù)結(jié)構(gòu)為[element1,element2…]的索引結(jié)構(gòu),類似于python中的列表。

JSON可以由以上兩種形式自由組合而成,并且可以無限次嵌套,是數(shù)據(jù)交換的極佳方式。

例如,一個JSON對象可以寫為如下形式:

[{
???????? "username":"UnikFox",
???????? "age":20,
???????? "country":"China"
},{
???????? "username":"Luna",
???????? "age":16,
???????? "country":"Britain"
}
]

為方便查看JSON數(shù)據(jù),我們可以借助一個專門用于解析JSON數(shù)據(jù)的網(wǎng)址(https://www.json.cn/),將我們所要解析的JSON文本復制到左邊的輸入框,右邊的顯示框便會動態(tài)實時格式化顯現(xiàn),同時還能檢查輸入的文本是否符合JSON語法并給出提示。

JSON數(shù)據(jù)的寫入和讀取

在python中,我們可以很輕松地使用內(nèi)置的json庫來完成對JSON數(shù)據(jù)的相關(guān)操作。常用的操作是寫入和讀取,接下來我們對此分別進行介紹。

在此之前,我們先來做一些準備工作。

#導入json庫 import json#設置一個用于JSON對象操作的列表 persons = [{'username':'UnikFox','age':20,'country':'China'},{'username':'Luna','age':16,'country':'Britain'} ]

1.JSON數(shù)據(jù)的寫入

json庫中提供了dumps()和dump()兩種方法來進行數(shù)據(jù)寫入,其中前者適用于將python對象轉(zhuǎn)化為JSON字符串,而后者則可以將python對象寫入json文件。

##json庫寫入操作# 利用dumps()方法將python對象轉(zhuǎn)化為json字符串 json_str = json.dumps(persons) print(type(json_str)) #<class 'str'> print(json_str) #[{"username": "UnikFox", "age": 20, "country": "China"}, {"username": "Luna", "age": 16, "country": "Britain"}]# 利用dump()方法將python對象存儲到json文件中 with open('person.json','w',encoding='utf-8') as fp:json.dump(persons,fp,ensure_ascii=False)

這里要說明的地方有兩處:1.有時候我們的字符串為中文,因此在打開文件時需要設置編碼encoding;2.json文件的寫入默認為Unicode編碼,在寫入數(shù)據(jù)后會自動轉(zhuǎn)化為unicode字符,為方便中文的顯示,我們需要關(guān)閉其默認編碼’ensure_ascii=False’。

person.json文件內(nèi)容(這里我們可以看到,json寫入時自動地幫我們格式化了數(shù)據(jù),將原本地單引號轉(zhuǎn)化為了雙引號)

[{"username": "UnikFox", "age": 20, "country": "China"}, {"username": "Luna", "age": 16, "country": "Britain"}]

2.JSON數(shù)據(jù)的讀取

和寫入操作類似,json庫提供了loads()和load()兩種方法,前者為從JSON字符串轉(zhuǎn)化為python對象,而后者則是從文件中獲取python對象。

##json庫讀取操作# 使用loads()方法將json字符串轉(zhuǎn)化為python對象 json_str = '[{"username": "UnikFox", "age": 20, "country": "China"}, {"username": "Luna", "age": 16, "country": "China"}]' persons = json.loads(json_str) print(persons) #[{"username": "UnikFox", "age": 20, "country": "China"}, {"username": "Luna", "age": 16, "country": "Britain"}]# 利用load()方法從json文件中讀取數(shù)據(jù)并存儲為python對象 with open('person.json','r',encoding='utf-8')as fp:persons = json.load(fp)print(type(persons)) #<class 'list'>print(persons) #[{'username': 'UnikFox', 'age': 20, 'country': 'China'}, {'username': 'Luna', 'age': 16, 'country': 'Britain'}]

?


以上便是有關(guān)JSON文件存儲的簡單介紹和基本使用,更詳細的內(nèi)容可以參考官方文檔:https://docs.python.org/3.6/library/json.html

轉(zhuǎn)載于:https://www.cnblogs.com/Unikfox/p/9690476.html

總結(jié)

以上是生活随笔為你收集整理的【Python爬虫学习笔记6】JSON文件存储的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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