python对象与json字符串互转
2023-12-27 15:17:44
目录
json字符串转python对象
基于json.loads完成
json字符串转dict
? ? import json
? ? test_str = '{"name": "ww", "age": 99, "causes": ["A","B"]}'
? ? json1 = json.loads(test_str)
? ? print("json1={}, type={}, len(json1)={}".format(json1, type(json1), len(json1)))
? ? print("json1.age={}".format(json1['age']))
? ? # json1={'name': 'ww', 'age': 99, 'causes': ['A', 'B']}, type=<class 'dict'>
? ? # json1.age=99
? ? # test_str为正确的json格式
? ? # test_str2 = "{'name': 'ww', 'age': 99, 'causes': ['A','B']}"
? ? # json2 = json.loads(test_str2)
? ? # print("json2={}, type={}".format(json2, type(json2)))
? ? # ?转换失败json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
? ? # ?注意:test_str2字符串不符合json的格式
?json字符串?转list
? ? test_str1 = ' ["A", "B", "C"]'
? ? json2 = json.loads(test_str1)
? ? print("json2={}, type={}, len(json1)={}".format(json2, type(json2), len(json2)))
? ? print("json2[1]={}".format(json2[1]))
? ? # json2=['A', 'B', 'C'], type=<class 'list'>, len(json1)=3
? ? # json2[1]=B
python对象转json格式字符串
基于json.dumps完成
dict转json
? ? dict1 = {'name': 'ww', 'age': 99, 'causes': ['A',"B"]}
? ? json3 = json.dumps(dict1)
? ? print("json3={}, type={}".format(json3, type(json3)))
? ? # json3={"name": "ww", "age": 99, "causes": ["A", "B"]}, type=<class 'str'>
list转json
????list1?=?["A",?"B",?"C"]
????json4?=?json.dumps(list1)
????print("json4={},?type={}".format(json4,?type(json4)))
????#?json4=["A",?"B",?"C"],?type=<class?'str'>
json格式字符串写入文件
test_dict = {'name': 'ww', 'age': 99, 'causes': ['A',"B"]}
with open('a.json', 'a', encoding='utf-8') as f0:
? ? json.dump(test_dict, f0) ? ?
# 参数1传入需要写入文件的字符串对应的python对象即可,无需手动转换为字符串再写入
从文件读取json格式字符串
with open('a.json', 'r', encoding='utf-8') as f0:
? ? file_data = json.load(f0)
如有帮助,欢迎留下足迹哦!
文章来源:https://blog.csdn.net/HYZX_9987/article/details/135203232
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!