標籤:json.js 兩種方法 讀取 EDA 執行 轉化 for col 寫入
1.dumps()
1. json.dumps()
用於將字典(dic)類型的資料轉成字串(str),直接將dict類型的資料寫入json檔案中會發生報錯,因此在將資料寫入時需要用到該函數。
import json name = {‘aa‘:‘1111‘,‘bb‘:‘2222‘,‘cc‘:‘3333‘,‘dc‘:‘4444‘} jsObj = json.dumps(name) print(name)print(jsObj) print(type(name))print(type(jsObj))
運行後結果如下;
{‘aa‘: ‘1111‘, ‘cc‘: ‘3333‘, ‘bb‘: ‘2222‘, ‘dd‘: ‘4444‘}{"aa": "1111", "cc": "3333", "bb": "2222", "dd": "4444"}<type ‘dict‘><type ‘str‘>
寫入JSON檔案後執行時會發生錯誤:
import json name = {‘aa‘:‘1111‘,‘bb‘:‘2222‘,‘cc‘:‘3333‘,‘dd‘:‘4444‘} emb_filename = (‘/home/cqh/faceData/emb_json.json‘) # jsObj = json.dumps(name_emb) //未進行函數轉化時 with open(emb_filename, "w") as f: f.write(name) f.close()
未進行函數轉化時,系統報錯,當加入該函數的時候系統運行正常。
2.json.loads()
json.loads()用於將str類型的資料轉成dict。
import json nameb = {‘aa‘:‘1111‘,‘bb‘:‘2222‘,‘cc‘:‘3333‘,‘d‘:‘4444‘} jsDumps = json.dumps(name) jsLoads = json.loads(jsDumps) print(name)print(jsDumps)print(jsLoads) print(type(name))print(type(jsDumps))print(type(jsLoads))
運行結果:
{‘aa‘: ‘1111‘, ‘cc‘: ‘3333‘, ‘bb‘: ‘2222‘, ‘dd‘: ‘4444‘}{"aa": "1111", "cc": "3333", "bb": "2222", "dd": "4444"}{u‘aa‘: u‘1111‘, u‘cc‘: u‘3333‘, u‘bb‘: u‘2222‘, u‘dd‘: 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 1jsObj = 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檔案中讀取資料。
1 import json 2 3 emb_filename = (‘/home/cqh/faceData/emb_json.json‘) 4 5 jsObj = json.load(open(emb_filename)) 6 7 print(jsObj) 8 print(type(jsObj)) 9 10 for key in jsObj.keys():11 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: 1111key: c value: 3333key: b value: 2222key: d value: 4444
Json中dumps、loads、dump、load函數執行個體講解