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抓取豆瓣图片并自动保存示例学习
Jan 10 Python
sqlalchemy对象转dict的示例
Apr 22 Python
Python 2与Python 3版本和编码的对比
Feb 14 Python
Python+OpenCV让电脑帮你玩微信跳一跳
Jan 04 Python
python实现快速排序的示例(二分法思想)
Mar 12 Python
Matplotlib 生成不同大小的subplots实例
May 25 Python
python爬取哈尔滨天气信息
Jul 14 Python
python全栈要学什么 python全栈学习路线
Jun 28 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
Dec 19 Python
Python调用钉钉自定义机器人的实现
Jan 03 Python
Python基础知识学习之类的继承
May 31 Python
pytorch通过训练结果的复现设置随机种子
Jun 01 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中的实现trim函数代码
2007/03/19 PHP
php中拷贝构造函数、赋值运算符重载
2012/07/25 PHP
PHP实现仿百度文库,豆丁在线文档效果(word,excel,ppt转flash)
2016/03/10 PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
2016/05/19 PHP
javascript+dom树型菜单类,希望朋友们一起进步
2007/05/03 Javascript
javascript定时变换图片实例代码
2013/03/17 Javascript
jQuery中setTimeout的几种使用方法小结
2013/04/07 Javascript
JSON遍历方式实例总结
2015/12/07 Javascript
Bootstarp风格的toggle效果分享
2016/02/23 Javascript
gulp-htmlmin压缩html的gulp插件实例代码
2016/06/06 Javascript
js前端实现多图图片上传预览的两个方法(推荐)
2016/11/18 Javascript
js canvas实现QQ拨打电话特效
2017/05/10 Javascript
浅谈Vue-cli 命令行工具分析
2017/11/22 Javascript
响应式框架Bootstrap栅格系统的实例
2017/12/19 Javascript
vue-cli安装使用流程步骤详解
2018/11/08 Javascript
微信公众号H5支付接口调用方法
2019/01/10 Javascript
react MPA 多页配置详解
2019/10/18 Javascript
js实现简单的日历显示效果函数示例
2019/11/25 Javascript
js如何验证密码强度
2020/03/18 Javascript
vue-router之解决addRoutes使用遇到的坑
2020/07/19 Javascript
[01:29]Ti4循环赛第三日精彩回顾
2014/07/13 DOTA
[54:30]Liquid vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
[03:15]DOTA2-DPC中国联赛1月22日Recap集锦
2021/03/11 DOTA
低版本中Python除法运算小技巧
2015/04/05 Python
Mac中Python 3环境下安装scrapy的方法教程
2017/10/26 Python
Python中的上下文管理器和with语句的使用
2018/04/17 Python
python支付宝支付示例详解
2019/08/22 Python
HTML5实现文件断点续传的方法
2017/01/04 HTML / CSS
全球知名旅游社区法国站点:TripAdvisor法国
2016/08/03 全球购物
Microsoft新加坡官方网站:购买微软最新软件和技术产品
2016/10/28 全球购物
自行车租赁公司创业计划书
2014/01/28 职场文书
美容院营销方案
2014/03/05 职场文书
小学班级口号大全
2015/12/25 职场文书
python如何读取.mtx文件
2021/04/22 Python
Windows安装Anaconda3的方法及使用过程详解
2021/06/11 Python
win sever 2022如何占用操作主机角色
2022/06/25 Servers