一、json.dumps()python
json.dumps()用於將dict類型的數據轉成str,由於若是直接將dict類型的數據寫入json文件中會發生報錯,所以在將數據寫入時須要用到該函數。json
- 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()
轉換後再寫入,則不報錯app

二、json.loads()函數
json.loads()用於將str類型的數據轉成dict。spa
- 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))
運行結果以下:.net
'a'變成了u'a'是由於發生了類型轉換,str會轉換成unicodecode
- {'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'>
三、json.dump()blog
json.dump()用於將dict類型的數據轉成str,並寫入到json文件中。下面兩種方法均可以將數據寫入json文件ip
- 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)))
運行結果以下:
- {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