json 模塊提供了一種很簡單的方式來編碼和解碼JSON數據。 其中四個主要的函數是 json.dump(), json.dumps()與json.load(), json.loads()。
1.json.dumps()
將一個Python數據結構轉換爲JSON,即將dict類型的數據轉成str,因爲如果直接將dict類型的數據寫入json文件中會發生報錯,因此在將數據寫入時需要用到該函數。
import json
data = {
'name' : 'myname',
'age' : 100,
}
json_str = json.dumps(data)
2.json.loads()
將一個JSON編碼的字符串轉換回一個Python數據結構,即將str轉換成dict
data = json.loads(json_str)
3.json.dump()
json.dump主要用來json文件讀寫,和json.load函數配合使用, json.dump()用於將dict類型的數據轉成str,並寫入到json文件中
with open('test.json', 'w') as f:
json.dump(data, f)
with open('test.json', 'r') as f:
data = json.load(f)
將dict寫入文件中的兩種方式
import json
name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'}
emb_filename = ('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文件中讀取數據。
從json文件中讀取數據
import json
emb_filename = ('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)))
Python 3中的json在做dumps操作時,會將中文轉換成unicode編碼,並以16進制方式存儲,再做逆向操作時,會將unicode編碼轉換回中文