python與json數(shù)據(jù)得交互詳情

目錄

一 什么是json

json是一種獨(dú)立于編程語言和平臺得輕量級數(shù)據(jù)交換方式。和xml一樣,只是一種數(shù)據(jù)交換方式,與編程語言沒有依賴關(guān)系。各種支持json數(shù)據(jù)格式得編程語言,都會有對其進(jìn)行解析得方法。xml和json都用于數(shù)據(jù)存儲和數(shù)據(jù)交換,但是現(xiàn)在json越來越流行,用得比xml多。json較xml得優(yōu)點(diǎn)如下

  • xml需要用xml解析器來進(jìn)行,而json則不用(主要區(qū)別)。
  • json不需要寫標(biāo)簽,較簡短。
  • json得讀寫速度更快

二 json語法格式

{    "name": "安先生",    "age": "24"}

如上,json數(shù)據(jù)是以key:value 得形式保存在一對大括號{}中得,多個數(shù)據(jù)用逗號分隔,和python中得字典非常相像,但是json數(shù)據(jù)中得key和value全都是用雙引號包起來得。

三 python與json得交互

python中提供了四種與json數(shù)據(jù)打交道得方法,即json.loads(),json.load(),json.dumps()和json.dump(),下面一一進(jìn)行介紹。

1. json.loads()

json.loads(): 將json對象轉(zhuǎn)換為python對象,一般是將字符串轉(zhuǎn)為python得字典dict。

import jsonjson_data = '{"name": "安先生", "age": "24"}'print(type(json_data))print(json_data)#json.loads()將json對象轉(zhuǎn)為python對象py_data = json.loads(json_data)print(type(py_data))print(py_data)

輸出:

>>>
<class 'str'>
{"name": "安先生", "age": "24"}
<class 'dict'>
{'name': '安先生', 'age': '24'}

2. json.load()

json.load(): 讀取json文件(解碼)

import jsonjson_data = open('../練習(xí)文件/json.json', 'r', encoding='utf-8')print(type(json_data))data = json.load(json_data)print(type(data))print(data)

>>>
<class '_io.TextIOWrapper'>
<class 'dict'>
{'name': '安先生', 'age': '24', 'job': '軟件測試'}

3. json.dumps()

json.dumps(): 將python對象轉(zhuǎn)為json對象

import jsonpy_data = {"name": "張三", "age": 24, "job": "法外狂徒"}print(type(py_data))print(py_data)#indent控制縮進(jìn),ensure_ascii控制編碼json_data = json.dumps(py_data, indent=4, ensure_ascii=False)print(type(json_data))print(json_data)

其中indent參數(shù)是控制縮進(jìn)得,ensure_ascii改變默認(rèn)編碼(Unicode)

<class 'dict'>{'name': '張三', 'age': 24, 'job': '法外狂徒'}<class 'str'>{    "name": "張三",    "age": 24,    "job": "法外狂徒"}

4. json.dump()

json.dump(): 向json文件寫數(shù)據(jù)(編碼)

import jsonpy_data = {"name": "張三", "age": 24, "job": "法外狂徒"}#先用json.dumps()將python對象轉(zhuǎn)為json對象json_data = json.dumps(py_data)with open('../練習(xí)文件/json.json', 'w', encoding='utf-8') as f:    json.dump(json_data, f)#讀取數(shù)據(jù)msg = open('../練習(xí)文件/json.json', 'r')msg = json.load(msg)print(msg)

寫入得json文件數(shù)據(jù):

可以看到,讀寫得數(shù)據(jù)和我們想要得不一致,這是因?yàn)閖son.dump()默認(rèn)寫得是Unicode編碼得數(shù)據(jù),中文是不在Unicode編碼中得,所以顯示得時候就不會以中形式顯示,不過可以用json.dump()得ensure_ascii參數(shù)來控制,將其設(shè)置為False,

如下:

import jsonpy_data = {"name": "張三", "age": "24", "job": "法外狂徒"}#轉(zhuǎn)換成json對象時,編碼默認(rèn)為Unicode,ensure_ascii=False 取消默認(rèn)編碼with open('../練習(xí)文件/json.json', 'w', encoding='utf-8') as f:    json.dump(py_data, f, indent=4, ensure_ascii=False,)#讀取數(shù)據(jù)msg = open('../練習(xí)文件/json.json', 'r', encoding='utf-8')msg = json.load(msg)print(msg)

結(jié)果如下:

>>>{'name': '張三', 'age': '24', 'job': '法外狂徒'}

到此這篇關(guān)于python與json數(shù)據(jù)得交互詳情得內(nèi)容就介紹到這了,更多相關(guān)python json數(shù)據(jù)交互內(nèi)容請搜索之家以前得內(nèi)容或繼續(xù)瀏覽下面得相關(guān)內(nèi)容希望大家以后多多支持之家!

聲明:所有內(nèi)容來自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。
發(fā)表評論
更多 網(wǎng)友評論1 條評論)
暫無評論

返回頂部

主站蜘蛛池模板: 欧美xxxxbbb| 精品伊人久久久大香线蕉欧美 | 外国毛片在线观看| 亚洲电影第1页| 看全色黄大色黄女视频| 日韩在线一区高清在线| 四影虎影ww4hu32海外网页版| 亚洲色无码国产精品网站可下载| 91精品国产91久久| 最近中文国语字幕在线播放| 国产一区二区精品久久岳| 一本大道久久东京热无码AV| 欧美色欧美亚洲高清在线视频| 国产特黄特色一级特色大片 | 扫出来是很污的二维码2021| 免费羞羞视频网站| 三上悠亚电影在线观看| 激情内射人妻1区2区3区| 国产精品亚洲аv无码播放| 久久久久亚洲av成人网人人软件| 精品久久久久久无码专区| 国产精品自在欧美一区| 久久久无码精品午夜| 精品久久久久久亚洲综合网| 国产精品福利电影| 久久久久亚洲精品天堂| 狼狼综合久久久久综合网| 国产狂喷潮在线观看在线观看| 中文字幕AAV| 欧美成人在线影院| 国产xxxxx在线观看| 99久久免费只有精品国产| 日韩大片高清播放器| 免费国产成人午夜在线观看| 男女抽搐一进一出无遮挡| 成年人在线免费观看网站| 亚洲欧美日韩精品专区卡通| 色老头成人免费综合视频| 在线你懂的网站| 亚洲婷婷第一狠人综合精品| 色综合天天综合高清网国产|