Python Json模塊中dumps、loads、dump、load函數(shù)介紹
Json模塊dumps、loads、dump、load函數(shù)介紹
1、json.dumps()
json.dumps()用于將dict類型的數(shù)據(jù)轉(zhuǎn)成str,因?yàn)槿绻苯訉ict類型的數(shù)據(jù)寫(xiě)入json文件中會(huì)發(fā)生報(bào)錯(cuò),因此在將數(shù)據(jù)寫(xiě)入時(shí)需要用到該函數(shù)。
import json name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'} jsObj = json.dumps(name_emb) print(name_emb) print(jsObj) print(type(name_emb)) print(type(jsObj))
運(yùn)行結(jié)果如下:
{'a': '1111', 'c': '3333', 'b': '2222', 'd': '4444'}
{"a": "1111", "c": "3333", "b": "2222", "d": "4444"}
<type 'dict'>
<type 'str'>
若在數(shù)據(jù)寫(xiě)入json文件時(shí),未先進(jìn)行轉(zhuǎn)換,報(bào)錯(cuò)如下
import json name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'} emb_filename = ('/home/cqh/faceData/emb_json.json') # jsObj = json.dumps(name_emb) with open(emb_filename, "w") as f: f.write(name_emb) f.close()
轉(zhuǎn)換后再寫(xiě)入,則不報(bào)錯(cuò)
2、json.loads()
json.loads()用于將str類型的數(shù)據(jù)轉(zhuǎn)成dict。
import json name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'} jsDumps = json.dumps(name_emb) jsLoads = json.loads(jsDumps) print(name_emb) print(jsDumps) print(jsLoads) print(type(name_emb)) print(type(jsDumps)) print(type(jsLoads))
運(yùn)行結(jié)果如下:
'a'變成了u'a'是因?yàn)榘l(fā)生了類型轉(zhuǎn)換,str會(huì)轉(zhuǎn)換成unicode
{'a': '1111', 'c': '3333', 'b': '2222', 'd': '4444'}
{"a": "1111", "c": "3333", "b": "2222", "d": "4444"}
{u'a': u'1111', u'c': u'3333', u'b': u'2222', u'd': u'4444'}
<type 'dict'>
<type 'str'>
<type 'dict'>
3、json.dump()
json.dump()用于將dict類型的數(shù)據(jù)轉(zhuǎn)成str,并寫(xiě)入到j(luò)son文件中。下面兩種方法都可以將數(shù)據(jù)寫(xiě)入json文件
import json name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'} emb_filename = ('/home/cqh/faceData/emb_json.json') # solution 1 jsObj = json.dumps(name_emb) with open(emb_filename, "w") as f: f.write(jsObj) f.close() # solution 2 json.dump(name_emb, open(emb_filename, "w"))
運(yùn)行結(jié)果如下:
4、json.load()
json.load()用于從json文件中讀取數(shù)據(jù)。
import json emb_filename = ('/home/cqh/faceData/emb_json.json') jsObj = json.load(open(emb_filename)) print(jsObj) print(type(jsObj)) for key in jsObj.keys(): print('key: %s value: %s' % (key,jsObj.get(key)))
運(yùn)行結(jié)果如下:
{u'a': u'1111', u'c': u'3333', u'b': u'2222', u'd': u'4444'}
<type 'dict'>
key: a value: 1111
key: c value: 3333
key: b value: 2222
key: d value: 4444
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python的reverse函數(shù)翻轉(zhuǎn)結(jié)果為None的問(wèn)題
這篇文章主要介紹了python的reverse函數(shù)翻轉(zhuǎn)結(jié)果為None的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05Python+OpenCV圖像處理——打印圖片屬性、設(shè)置存儲(chǔ)路徑、調(diào)用攝像頭
這篇文章主要介紹了Python+OpenCV圖像處理——打印圖片屬性、設(shè)置存儲(chǔ)路徑、調(diào)用攝像頭的示例,幫助大家更好的利用python處理圖片,感興趣的朋友可以了解下2020-10-10python使用Flask框架創(chuàng)建一個(gè)簡(jiǎn)單的動(dòng)態(tài)日歷效果
這篇文章主要介紹了python使用Flask框架創(chuàng)建一個(gè)簡(jiǎn)單的動(dòng)態(tài)日歷,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2024-12-12python把ipynb文件轉(zhuǎn)換成pdf文件過(guò)程詳解
這篇文章主要介紹了用python把ipynb文件轉(zhuǎn)換成pdf文件過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07