Python 官方文档:入门教程 => 点击学习
本文小编为大家详细介绍“python怎么读取和存储dict()与.JSON格式文件”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python怎么读取和存储dict()与.json格式文件”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入
本文小编为大家详细介绍“python怎么读取和存储dict()与.JSON格式文件”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python怎么读取和存储dict()与.json格式文件”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
数据文件:hg.json
{"商家名称": "珍滋味港式粥火锅(工体店)", "评分": 27.0, "地址": "火锅工人体育场东路丙2号中国红街3号楼2层里", "人均消费": 174, "评论数量": 2307}{"商家名称": "井格老灶火锅(望京新世界店)", "评分": 26.2, "地址": "火锅望京广顺南大街路16号", "人均消费": 105, "评论数量": 1387}{"商家名称": "脸谱港式火锅(酒仙桥丽都店)", "评分": 24.5, "地址": "火锅芳园西路6号一层", "人均消费": 218, "评论数量": 39}
针对上述数据,可以采用如下方法将json编码的字符串转换为python数据结构dict:
# -*- coding: utf-8 -*-import jsonimport codecsdata = []with codecs.open("hg.json", "r", "utf-8") as f: for line in f: dic = json.loads(line) data.append(dic) print(json.dumps(dic, indent=4, ensure_ascii=False, encoding='utf-8'))
dic = {"商家名称": "井格老灶火锅(望京新世界店)", "评分": 26.2, "地址": "火锅望京广顺南大街路16号", "人均消费": 105, "评论数量": 1387}with codecs.open('hg.json','a', 'utf-8') as outf: json.dump(dic, outf, ensure_ascii=False) outf.write('\n')
如果字典数据中有中文的话,print dic是无法正常显示中文的,可通过下面的方法格式化输出字典数据:
dic = {"北京": [446, 208.7, 110000], "天津": [454.2, 219.8, 120000], "上海": [498.6, 319.7, 310000]}print(json.dumps(dic, ensure_ascii=False, encoding='utf-8', indent=4))
两种转化方法
user = "{'name' : 'LiHua', 'sex' : 'male', 'age': 18}"dic1 = eval(user)exec("dic2="+user)
补充
一般来说,json解码时会从所提供的数据中创建出字典或者列表,如果想创建其它类型的对象,可以为json.loads()方法提供object_pairs_hook或者object_hook参数。下面的示例展示了我们应该如何将json数据解码为OrderedDict(有序字典),这样可以保持数据的顺序不变。
>>> s = '{"name":"ACME", "SHARES":50, "PRICE":490}'>>> from collections import OrderedDict>>> data = json.load(s, object_pairs_hook=OrderedDict)>>> dataOrderedDict([('name', 'ACME'), ('shares', 50), ('price', 490)]>>>
现在获取一个医药网站的数据,最终转换成dict类型,需要将数据写入JSON文件中,以方便后面数据的使用
with open('./medical.json', 'w',encoding='utf-8') as fp: json.dump(data, fp)
但得到的最终数据却是这样:
本来应该是正常的中文字符串,却是ASCII编码,因此在dump方法中添加一个ensure_ascii参数,原因是dump()方法将字典转化为字符串,会默认将其中unicode码以ascii编码的方式输入到字符串中
with open('./medical.json', 'w',encoding='utf-8') as fp: json.dump(data, fp,ensure_ascii=False)
读到这里,这篇“python怎么读取和存储dict()与.json格式文件”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网Python频道。
--结束END--
本文标题: python怎么读取和存储dict()与.json格式文件
本文链接: https://lsjlt.com/news/341936.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0