json.dump(), json.dumps()與json.load(), json.loads()區別

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編碼轉換回中文

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章