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 相关文章推荐
MySQLdb ImportError: libmysqlclient.so.18解决方法
Aug 21 Python
Perl中著名的Schwartzian转换问题解决实现
Jun 02 Python
Python对列表中的各项进行关联详解
Aug 15 Python
和孩子一起学习python之变量命名规则
May 27 Python
python快速排序的实现及运行时间比较
Nov 22 Python
pytorch GAN伪造手写体mnist数据集方式
Jan 10 Python
利用 Python ElementTree 生成 xml的实例
Mar 06 Python
Python爬虫定时计划任务的几种常见方法(推荐)
Jan 15 Python
Python爬虫实现selenium处理iframe作用域问题
Jan 27 Python
在python中实现导入一个需要传参的模块
May 12 Python
Pytorch使用shuffle打乱数据的操作
May 20 Python
python四个坐标点对图片区域最小外接矩形进行裁剪
Jun 04 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
很温暖很温暖的Lester Young
2021/03/03 冲泡冲煮
关于PHP中Object对象的笔记分享
2011/06/28 PHP
Codeigniter中集成smarty和adodb的方法
2016/03/04 PHP
Laravel框架中缓存的使用方法分析
2019/09/06 PHP
window.js 主要包含了页面的一些操作
2009/12/23 Javascript
基于jquery用于查询操作的实现代码
2010/05/10 Javascript
简单实用jquery版三级联动select示例
2013/07/04 Javascript
javascript自动给文本url地址增加链接的方法分享
2014/01/20 Javascript
js进行表单验证实例分析
2015/02/10 Javascript
Js获取当前日期时间及格式化代码
2016/09/17 Javascript
微信小程序进行微信支付的步骤昂述
2016/12/01 Javascript
angularjs利用directive实现移动端自定义软键盘的示例
2017/09/20 Javascript
详解webpack多页面配置记录
2018/01/22 Javascript
解决Jquery下拉框数据动态获取的问题
2018/01/25 jQuery
vue.js移动数组位置,同时更新视图的方法
2018/03/08 Javascript
JS实现的汉字与Unicode码相互转化功能分析
2018/05/25 Javascript
vue this.reload 方法 配置
2018/09/12 Javascript
iview同时验证多个表单问题总结
2018/09/29 Javascript
详解vue配置后台接口方式
2019/03/29 Javascript
vue 父组件给子组件传值子组件给父组件传值的实例代码
2019/04/15 Javascript
layui使用form表单实现post请求页面跳转的方法
2019/09/14 Javascript
JavaScript中变量提升机制示例详解
2019/12/27 Javascript
python实现Decorator模式实例代码
2018/02/09 Python
python使用xslt提取网页数据的方法
2018/02/23 Python
python定向爬虫校园论坛帖子信息
2018/07/23 Python
python django中8000端口被占用的解决
2019/12/17 Python
python如何爬取动态网站
2020/09/09 Python
太阳镜仓库,售价20美元或更少:Sunglass Warehouse
2016/09/28 全球购物
GWebs公司笔试题
2012/05/04 面试题
小学生读书感言
2014/02/12 职场文书
网络研修随笔感言
2014/02/17 职场文书
借款协议书范本
2014/04/22 职场文书
论文诚信承诺书
2014/05/23 职场文书
乒乓球比赛通知
2015/04/27 职场文书
2015年社区科普工作总结
2015/05/13 职场文书
vue实现Toast组件轻提示
2022/04/10 Vue.js