Python Json模塊中dumps、loads、dump、load函數介紹
Json模塊dumps、loads、dump、load函數介紹
1、json.dumps()
json.dumps()用于將dict類型的數據轉成str,因為如果直接將dict類型的數據寫入json文件中會發(fā)生報錯,因此在將數據寫入時需要用到該函數。
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))
運行結果如下:
{'a': '1111', 'c': '3333', 'b': '2222', 'd': '4444'}
{"a": "1111", "c": "3333", "b": "2222", "d": "4444"}
<type 'dict'>
<type 'str'>
若在數據寫入json文件時,未先進行轉換,報錯如下
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()
轉換后再寫入,則不報錯
2、json.loads()
json.loads()用于將str類型的數據轉成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))
運行結果如下:
'a'變成了u'a'是因為發(fā)生了類型轉換,str會轉換成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類型的數據轉成str,并寫入到json文件中。下面兩種方法都可以將數據寫入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"))
運行結果如下:
4、json.load()
json.load()用于從json文件中讀取數據。
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)))
運行結果如下:
{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
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Python+OpenCV圖像處理——打印圖片屬性、設置存儲路徑、調用攝像頭
這篇文章主要介紹了Python+OpenCV圖像處理——打印圖片屬性、設置存儲路徑、調用攝像頭的示例,幫助大家更好的利用python處理圖片,感興趣的朋友可以了解下2020-10-10python使用Flask框架創(chuàng)建一個簡單的動態(tài)日歷效果
這篇文章主要介紹了python使用Flask框架創(chuàng)建一個簡單的動態(tài)日歷,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧2024-12-12