Json模塊dumps、loads、dump、load函數介紹

一、json.dumps()

         json.dumps()實現python類型轉化爲json字符串,返回一個str對象 ,把一個Python對象編碼轉換成Json字符串 ,若是直接將dict類型的數據寫入json文件中會發生報錯python

從python原始類型向json類型的轉化對照以下:json

import json
import chardet 
listStr = [1, 2, 3, 4] 
tupleStr = (1, 2, 3, 4) 
dictStr = {"city": "北京", "name": "大貓"} 
json.dumps(listStr) # '[1, 2, 3, 4]' 
json.dumps(tupleStr) # '[1, 2, 3, 4]' 
# 注意:json.dumps() 處理中文時默認使用的ascii編碼,會致使中文沒法正常顯示 
print json.dumps(dictStr) 
# 記住:處理中文時,添加參數 ensure_ascii=False 來禁用ascii編碼 
print json.dumps(dictStr, ensure_ascii=False) 
# {"city": "北京", "name": "大劉"} 
json.dumps(res, indent=2, sort_keys=True)格式化輸出並按鍵排序

二、json.loads()編碼

     json.loads()把Json格式字符串解碼轉換成Python對象code

從json到python的類型轉化對照以下:對象

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))     

          運行結果以下:blog

         'a'變成了u'a'是由於發生了類型轉換,str會轉換成unicode排序

 三、json.dump()

         json.dump()用於將Python內置類型序列化爲json對象後寫入文件 。下面兩種方法均可以將數據寫入json文件ci

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"))

          運行結果以下:unicode

 

  四、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)))

 運行結果以下:

相關文章
相關標籤/搜索