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合并字典键值并去除重复元素的实例
Dec 18 Python
离线安装Pyecharts的步骤以及依赖包流程
Apr 23 Python
利用python将图片转换成excel文档格式
Dec 30 Python
Python实现上下班抢个顺风单脚本
Feb 07 Python
Python-copy()与deepcopy()区别详解
Jul 12 Python
Python 多线程,threading模块,创建子线程的两种方式示例
Sep 29 Python
pytorch实现CNN卷积神经网络
Feb 19 Python
python 已知三条边求三角形的角度案例
Apr 12 Python
Python如何安装第三方模块
May 28 Python
用pushplus+python监控亚马逊到货动态推送微信
Jan 29 Python
Django中如何用xlwt生成表格的方法步骤
Jan 31 Python
python元组打包和解包过程详解
Aug 02 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 getsiteurl()函数
2009/09/05 PHP
PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
2011/07/01 PHP
php中动态调用函数的方法
2015/03/16 PHP
php上传图片生成缩略图(GD库)
2016/01/06 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
2016/03/01 PHP
PHP中ID设置自增后不连续的原因分析及解决办法
2016/08/21 PHP
thinkphp3.2同时连接两个数据库的简单方法
2019/08/13 PHP
学习ExtJS TextField常用方法
2009/10/07 Javascript
jquery实现居中弹出层代码
2010/08/25 Javascript
两种方法实现文本框输入内容提示消失
2013/03/17 Javascript
用js的document.write输出的广告无阻塞加载的方法
2014/06/05 Javascript
JavaScript中的pow()方法使用详解
2015/06/15 Javascript
使用node+vue.js实现SPA应用
2016/01/28 Javascript
全面理解JavaScript中的闭包
2016/05/12 Javascript
深入理解Javascript中的valueOf与toString
2017/01/04 Javascript
Vue.js仿Metronic高级表格(二)数据渲染
2017/04/19 Javascript
微信小程序Redux绑定实例详解
2017/06/07 Javascript
利用jQuery实现简单的拖曳效果实例代码
2017/10/20 jQuery
vue2.0 父组件给子组件传递数据的方法
2018/01/15 Javascript
使用vue-router在Vue页面之间传递数据的方法
2019/07/15 Javascript
javascript 内存模型实例详解
2020/04/18 Javascript
vue 里面的 $forceUpdate() 强制实例重新渲染操作
2020/09/21 Javascript
从CentOS安装完成到生成词云python的实例
2017/12/01 Python
python 判断网络连通的实现方法
2018/04/22 Python
pycharm修改file type方式
2019/11/19 Python
python实现逆滤波与维纳滤波示例
2020/02/26 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
2020/05/25 Python
GafasWorld哥伦比亚:网上购买眼镜
2017/11/28 全球购物
美国最值得信赖的宠物药房:Allivet
2019/03/23 全球购物
依法行政工作汇报材料
2014/10/28 职场文书
中秋节寄语2015
2015/03/24 职场文书
单位证明范文
2015/06/18 职场文书
2015年卫生局工作总结
2015/07/24 职场文书
React-vscode使用jsx语法的问题及解决方法
2021/06/21 Javascript
Python中使用tkFileDialog实现文件选择、保存和路径选择
2022/05/20 Python
docker 制作mysql镜像并自动安装
2022/05/20 Servers