python如何读取和存储dict()与.json格式文件

作者:勤奋的清风 时间:2021-12-07 16:13:36 

读取和存储dict()与.json格式文件

读取.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 json
import codecs

data = []
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'))

保存字典数据到.json文件中

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)
>>> data
OrderedDict([('name', 'ACME'), ('shares', 50), ('price', 490)]
>>>

将dict数据写入json文件中

现在获取一个医药网站的数据,最终转换成dict类型,需要将数据写入JSON文件中,以方便后面数据的使用

with open('./medical.json', 'w',encoding='utf-8') as fp:
  json.dump(data, fp)

但得到的最终数据却是这样:

python如何读取和存储dict()与.json格式文件

本来应该是正常的中文字符串,却是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格式文件

来源:https://blog.csdn.net/qq_23926575/article/details/76566209

标签:python,dict,json
0
投稿

猜你喜欢

  • Python List remove()实例用法详解

    2022-11-24 17:40:18
  • TensorFlow Session会话控制&Variable变量详解

    2023-06-21 12:37:42
  • 浅谈python累加求和+奇偶数求和_break_continue

    2021-03-06 06:56:03
  • 未能找到存储过程’master.dbo.xp_fileexist’解决方法

    2011-03-13 09:29:00
  • Python实现计算文件MD5和SHA1的方法示例

    2023-12-07 06:55:46
  • vscode中配置jupyter的详细步骤(彻底解决Failed to start the Kernel问题)

    2022-06-21 06:56:26
  • Django实现上传图片功能

    2022-01-06 13:57:44
  • 解析Oracle数据库中的对象集合schema

    2023-07-22 20:42:34
  • Python使用Pandas处理测试数据的方法

    2021-12-18 10:47:18
  • js处理括弧配对替换的方法

    2008-01-16 13:48:00
  • python 识别图片中的文字信息方法

    2022-06-06 15:32:05
  • XML数据查询技术已经成为现今的研究热点

    2008-09-05 17:13:00
  • python监控网卡流量并使用graphite绘图的示例

    2022-06-24 22:35:54
  • 浅谈python新手中常见的疑惑及解答

    2022-06-23 18:45:40
  • PHP addAttribute()函数讲解

    2023-06-06 09:03:45
  • 使用WingPro 7 设置Python路径的方法

    2022-05-23 03:59:56
  • python Tkinter版学生管理系统

    2021-03-11 11:07:48
  • asp事务处理的另外一个方法

    2010-05-27 12:18:00
  • 在Python中操作时间之mktime()方法的使用教程

    2023-02-07 11:38:58
  • Tab(选项卡)的产品设计原则及应用[译]

    2009-07-09 19:05:00
  • asp之家 网络编程 m.aspxhome.com