标签:load jsObj name dump emb python dumps json dict
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
标签:load,jsObj,name,dump,emb,python,dumps,json,dict 来源: https://www.cnblogs.com/lxgbky/p/12957346.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。