1、json.dumps()
json.dumps()用于将dict类型的数据转成str,因为如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到该函数。
import json name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'} jsObj = json.dumps(name_emb) print(name_emb)
#{'a': '1111', 'c': '3333', 'b': '2222', 'd': '4444'}
print(jsObj) #{"a": "1111", "c": "3333", "b": "2222", "d": "4444"} print(type(name_emb))
#<type 'dict'> print(type(jsObj)
#<type 'str'>
如果dict不进行dumps(),以dict object形式写入文件,会报错 type error,expect a string
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()
2、json.loads()
json.loads()用于将json格式的str类型的数据转成dict。与dumps()相反。
json格式的字符串是双引号格式,变成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 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文件中读取数据。
import json emb_filename = ('/home/cqh/faceData/emb_json.json') jsObj = json.load(open(emb_filename)) print(jsObj) print(type(jsObj))
- {u'a': u'1111', u'c': u'3333', u'b': u'2222', u'd': u'4444'}
- <type 'dict'>
总结:
str= json.dumps(dict), 把python的对象dict ,转换成str格式的json,双引号
dict= json.loads( str ),把str格式的json(双引号), 变成python的dict(单引号)
json.dump(dict, strfile ),把python的对象dict 保存成文件,内容是json 字符串(双引号)
dict=json.load( strfile ),返回的是python的object dict
参考:https://blog.csdn.net/mr_evanchen/article/details/77879967