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


Posted in Python onJune 25, 2022

读取和存储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格式文件

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。


Tags in this post...

Python 相关文章推荐
python字典get()方法用法分析
Apr 17 Python
python分析网页上所有超链接的方法
May 08 Python
python创建一个最简单http webserver服务器的方法
May 08 Python
python 环境变量和import模块导入方法(详解)
Jul 11 Python
Python 创建空的list,以及append用法讲解
May 04 Python
对python中的 os.mkdir和os.mkdirs详解
Oct 16 Python
Python多线程应用于自动化测试操作示例
Dec 06 Python
浅谈Python采集网页时正则表达式匹配换行符的问题
Dec 20 Python
Python中numpy模块常见用法demo实例小结
Mar 16 Python
Python开发企业微信机器人每天定时发消息实例
Mar 17 Python
无需压缩软件,用python帮你操作压缩包
Aug 17 Python
python palywright库基本使用
Jan 21 Python
python运行脚本文件的三种方法实例
Jun 25 #Python
如何利用python创作字符画
利用Python实时获取steam特惠游戏数据
Python first-order-model实现让照片动起来
python热力图实现的完整实例
彻底弄懂Python中的回调函数(callback)
Jun 25 #Python
利用Python实现翻译HTML中的文本字符串
Jun 21 #Python
You might like
如何在PHP中进行身份认证
2006/10/09 PHP
PHP使用标准库spl实现的观察者模式示例
2018/08/04 PHP
详解Laravel服务容器的绑定与解析
2019/11/05 PHP
javascript 强制刷新页面的实现代码
2009/12/13 Javascript
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
2013/05/17 Javascript
JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)
2013/10/01 Javascript
用javascript关闭本窗口不弹出询问框的方法
2014/09/12 Javascript
jQuery实现的输入框选择时间插件用法实例
2015/02/28 Javascript
超级简单实现JavaScript MVC 样式框架
2015/03/24 Javascript
AngularJs实现ng1.3+表单验证
2015/12/10 Javascript
js操作DOM--添加、删除节点的简单实例
2016/07/08 Javascript
jQuery ready()和onload的加载耗时分析
2016/09/08 Javascript
使用InstantClick.js让页面提前加载200ms
2017/09/12 Javascript
nodejs爬虫初试superagent和cheerio
2018/03/05 NodeJs
Vue 去除路径中的#号
2018/04/19 Javascript
对angular 监控数据模型变化的事件方法$watch详解
2018/10/09 Javascript
微信自定义分享链接信息(标题,图片和内容)实现过程详解
2019/09/04 Javascript
Vue+iview+webpack ie浏览器兼容简单处理
2019/09/20 Javascript
vue的路由映射问题及解决方案
2019/10/14 Javascript
Python利用ansible分发处理任务
2015/08/04 Python
Python实现快速排序和插入排序算法及自定义排序的示例
2016/02/16 Python
python中实现延时回调普通函数示例代码
2017/09/08 Python
PyQt5每天必学之QSplitter实现窗口分隔
2018/04/19 Python
pandas进行时间数据的转换和计算时间差并提取年月日
2019/07/06 Python
Python随机函数库random的使用方法详解
2019/08/21 Python
django自定义模板标签过程解析
2019/12/14 Python
python飞机大战pygame游戏之敌机出场实现方法详解
2019/12/17 Python
初学者学习Python好还是Java好
2020/05/26 Python
Python网络爬虫四大选择器用法原理总结
2020/06/01 Python
Fabletics官网:美国运动服饰品牌,由好莱坞女演员凯特·哈德森创立
2019/10/19 全球购物
迪斯尼假期(欧洲、中东及非洲):Disney Holidays EMEA
2021/02/15 全球购物
公路绿化方案
2014/05/12 职场文书
人代会标语
2014/06/30 职场文书
司机岗位职责说明书
2014/07/29 职场文书
作风整顿剖析材料
2014/09/30 职场文书
公司放假通知范文
2015/04/14 职场文书