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脚本来获取Google搜索结果的示例
May 04 Python
利用Python命令行传递实例化对象的方法
Nov 02 Python
利用Python爬取微博数据生成词云图片实例代码
Aug 31 Python
Python实现TCP通信的示例代码
Sep 09 Python
Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError
Dec 20 Python
python 装饰器功能与用法案例详解
Mar 06 Python
python实现opencv+scoket网络实时图传
Mar 20 Python
如何打包Python Web项目实现免安装一键启动的方法
May 21 Python
pytorch读取图像数据转成opencv格式实例
Jun 02 Python
Python执行时间的几种计算方法
Jul 31 Python
两行代码解决Jupyter Notebook中文不能显示的问题
Apr 24 Python
python学习之panda数据分析核心支持库
May 07 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
laravel中的fillable和guarded属性详解
2019/10/23 PHP
PHP延迟静态绑定使用方法实例解析
2020/09/05 PHP
简单通用的JS滑动门代码
2008/12/19 Javascript
使用jquery解析XML示例代码
2014/09/05 Javascript
JavaScript中switch语句的用法详解
2015/06/03 Javascript
sencha ext js 6 快速入门(必看)
2016/06/01 Javascript
JavaScript递归操作实例浅析
2016/10/31 Javascript
Vue.js系列之项目结构说明(2)
2017/01/03 Javascript
EsLint入门学习教程
2017/02/17 Javascript
NodeJs使用Mysql模块实现事务处理实例
2017/05/31 NodeJs
微信小程序异步处理详解
2017/11/10 Javascript
使用vue-router beforEach实现判断用户登录跳转路由筛选功能
2018/06/25 Javascript
微信JS-SDK updateAppMessageShareData安卓不能自定义分享详解
2019/03/29 Javascript
vue element-ui中table合计指定列求和实例
2020/11/02 Javascript
[00:35]可解锁地面特效
2018/12/20 DOTA
Python中shutil模块的常用文件操作函数用法示例
2016/07/05 Python
numpy中矩阵合并的实例
2018/06/15 Python
对python3 一组数值的归一化处理方法详解
2018/07/11 Python
完美解决Python matplotlib绘图时汉字显示不正常的问题
2019/01/29 Python
Python、 Pycharm、Django安装详细教程(图文)
2019/04/12 Python
详解pandas数据合并与重塑(pd.concat篇)
2019/07/09 Python
python实现H2O中的随机森林算法介绍及其项目实战
2019/08/29 Python
python numpy矩阵信息说明,shape,size,dtype
2020/05/22 Python
python开发入门——列表生成式
2020/09/03 Python
Flask-SocketIO服务端安装及使用代码示例
2020/11/26 Python
世界上最大的隐形眼镜商店:1-800 Contacts
2018/11/03 全球购物
银河香水:Galaxy Perfume
2019/03/25 全球购物
施华洛世奇中国官网:SWAROVSKI中国
2020/06/16 全球购物
幼儿园小班植树节活动方案
2014/03/04 职场文书
2014物价局民主生活会对照检查材料思想汇报
2014/09/24 职场文书
优秀党员先进材料
2014/12/18 职场文书
三严三实学习心得体会(精选N篇)
2016/01/05 职场文书
银行柜员工作心得体会
2016/01/23 职场文书
PHP 技巧 * SVG 保存为图片(分享图生成)
2021/04/02 PHP
解决Pytorch半精度浮点型网络训练的问题
2021/05/24 Python