python中的Json模塊dumps、dump、loads、load函數(shù)用法詳解
json的作用
JSON (JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式
json.dumps(): 對(duì)數(shù)據(jù)進(jìn)行編碼,把python對(duì)象轉(zhuǎn)換為字符串?dāng)?shù)據(jù)
json.loads(): 對(duì)數(shù)據(jù)進(jìn)行解碼,把json的字符串轉(zhuǎn)換為python對(duì)象

python中的Json模塊dumps、dump、loads、load函數(shù)用法詳解
1、json.dumps()和loads()
json.dumps()將dict類型數(shù)據(jù)轉(zhuǎn)成str。
json.loads()剛好相反,將str類型的數(shù)據(jù)轉(zhuǎn)成dict。
import json
data= {'a':'1111','b':'2222','c':'3333','d':'4444'}
filename = r"d:\1.json"
# 使用dumps()
str_data = json.dumps(data)
print(str_data) #輸出{"a": "1111", "b": "2222", "c": "3333", "d": "4444"}
# 使用loads()
dict_data = json.loads(str_data)
print(dict_data) #輸出{'a': '1111', 'b': '2222', 'c': '3333', 'd': '4444'} 2、json.dump()和json.load()
json.dump主要用來(lái)文件寫(xiě)入,json.load主要用來(lái)文件讀取。但是只能寫(xiě)入讀取一條數(shù)據(jù),多條會(huì)報(bào)錯(cuò)。
json.dump(x,f),x是對(duì)象,f是一個(gè)文件對(duì)象,這個(gè)方法可以將json字符串寫(xiě)入到文件中。
json.load(f),f是一個(gè)文件對(duì)象,這個(gè)方法可以從文件中讀取json數(shù)據(jù)。
import json
data = {'a':'1111','b':'2222','c':'3333','d':'4444'}
filename = r"d:\1.json"
# 使用dump()寫(xiě)入一行數(shù)據(jù)
with open(filename, "w") as f:
json.dump(data,f)
# 使用load()讀取一行數(shù)據(jù)
with open(filename, 'r') as f:
jsObj = json.load(f)
for key in jsObj.keys():
print('key: %s value: %s' % (key,jsObj.get(key)))輸出:
key: a value: 1111
key: b value: 2222
key: c value: 3333
key: d value: 4444
3、如何讀取寫(xiě)入多行數(shù)據(jù)呢?
import json
filename = r"d:\1.json"
data = [{'a':'1111','b':'2222','c':'3333','d':'4444'},
{'e':'1111','f':'2222','g':'3333','h':'4444'},
{'i':'1111','j':'2222','k':'3333','l':'4444'},
{'m':'1111','n':'2222','o':'3333','p':'4444'}]
#寫(xiě)入多行數(shù)據(jù)到文件
with open(filename,'w') as f:
for i in range(len(data)):
f.write(json.dumps(data[i])+'\n') #一定要換行
#從文件讀取多行數(shù)據(jù),并轉(zhuǎn)化為list
with open(filename,'r') as f:
jsObj=[json.loads(line) for line in f]
print(jsObj)到此這篇關(guān)于python中的Json模塊dumps、dump、loads、load函數(shù)用法詳解的文章就介紹到這了,更多相關(guān)python json模塊dumps、dump、loads、load函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Python3 逗號(hào)代碼 和 字符圖網(wǎng)格(詳談)
下面小編就為大家?guī)?lái)一篇基于Python3 逗號(hào)代碼 和 字符圖網(wǎng)格(詳談)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06
Python中關(guān)于print和return的區(qū)別
這篇文章主要介紹了Python中關(guān)于print和return的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
Python數(shù)據(jù)結(jié)構(gòu)樹(shù)與算法分析
這篇文章主要介紹了Python數(shù)據(jù)結(jié)構(gòu)樹(shù)與算法分析,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-07-07
Python?搭建?FastAPI?項(xiàng)目的詳細(xì)過(guò)程
這篇文章主要介紹了Python搭建FastAPI項(xiàng)目的過(guò)程,本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09
VSCode配置python環(huán)境及中文問(wèn)題解決方法
這篇文章主要介紹了VSCode配置python環(huán)境及中文問(wèn)題,print打印中文亂碼如何解決這個(gè)問(wèn)題呢,本文給大家?guī)?lái)兩種方法幫助大家解決這個(gè)問(wèn)題,需要的朋友可以參考下2022-02-02
Python自動(dòng)化辦公之Excel數(shù)據(jù)的寫(xiě)入
這篇文章主要為大家詳細(xì)介紹一下Python中excel的寫(xiě)入模塊- xlsxwriter,并利用該模塊實(shí)現(xiàn)Excel數(shù)據(jù)的寫(xiě)入,感興趣的小伙伴可以了解一下2022-05-05
Python3實(shí)現(xiàn)定時(shí)任務(wù)的四種方式
Python實(shí)現(xiàn)定點(diǎn)與定時(shí)任務(wù)方式比較多,找到下面四中實(shí)現(xiàn)方式,每個(gè)方式都有自己應(yīng)用場(chǎng)景;下面來(lái)快速介紹Python中常用的定時(shí)任務(wù)實(shí)現(xiàn)方式,一起看看吧2019-06-06

