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 相关文章推荐
利用Django框架中select_related和prefetch_related函数对数据库查询优化
Apr 01 Python
以视频爬取实例讲解Python爬虫神器Beautiful Soup用法
Jan 20 Python
一个基于flask的web应用诞生 记录用户账户登录状态(6)
Apr 11 Python
Python实现破解猜数游戏算法示例
Sep 25 Python
Python入门之三角函数sin()函数实例详解
Nov 08 Python
基于python批量处理dat文件及科学计算方法详解
May 08 Python
python Pandas如何对数据集随机抽样
Jul 29 Python
python 魔法函数实例及解析
Sep 25 Python
python 8种必备的gui库
Aug 27 Python
利用Python实现自动扫雷小脚本
Dec 17 Python
关于python中remove的一些坑小结
Jan 04 Python
Python import模块的缓存问题解决方案
Jun 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
phpmyadmin导入(import)文件限制的解决办法
2009/12/11 PHP
php防攻击代码升级版
2010/12/29 PHP
php实现搜索一维数组元素并删除二维数组对应元素的方法
2015/07/06 PHP
通过Unicode转义序列来加密,按你说的可以算是混淆吧
2007/05/06 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
2014/12/10 Javascript
jquery实现聚光灯效果的方法
2015/02/06 Javascript
Bootstrap表格和栅格分页实例详解
2016/05/20 Javascript
HTML5 实现的一个俄罗斯方块实例代码
2016/09/19 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
2017/01/04 Javascript
微信小程序 限制1M的瘦身技巧与方法详解
2017/01/06 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
2017/01/13 Javascript
JS检测数组类型的方法小结
2017/03/14 Javascript
详解vue-cli 本地开发mock数据使用方法
2018/05/29 Javascript
微信小程序 scroll-view 实现锚点跳转功能
2019/12/12 Javascript
vue-cli或vue项目利用HBuilder打包成移动端app操作
2020/07/29 Javascript
纯Python开发的nosql数据库CodernityDB介绍和使用实例
2014/10/23 Python
Python简单定义与使用字典dict的方法示例
2017/07/25 Python
Python实现的多项式拟合功能示例【基于matplotlib】
2018/05/15 Python
Python Matplotlib实现三维数据的散点图绘制
2019/03/19 Python
Python安装与基本数据类型教程详解
2019/05/29 Python
python+selenium 鼠标事件操作方法
2019/08/24 Python
Python 生成器,迭代,yield关键字,send()传参给yield语句操作示例
2019/10/12 Python
让你的Python代码实现类型提示功能
2019/11/19 Python
TensorFlow实现模型断点训练,checkpoint模型载入方式
2020/05/26 Python
python3.9实现pyinstaller打包python文件成exe
2020/12/13 Python
PyCharm+Miniconda3安装配置教程详解
2021/02/16 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
2021/02/23 Python
localstorage和sessionstorage使用记录(推荐)
2017/05/23 HTML / CSS
Vans澳大利亚官网:购买鞋子、服装及配件
2019/09/05 全球购物
2014年秋季开学寄语
2014/08/02 职场文书
派出所副所长四风问题个人整改措施思想汇报
2014/10/13 职场文书
入股协议书范本
2014/11/01 职场文书
党员活动总结
2015/02/04 职场文书
nginx 多个location转发任意请求或访问静态资源文件的实现
2021/03/31 Servers
浅谈Python基础之列表那些事儿
2021/05/11 Python
SSM VUE Axios详解
2021/10/05 Vue.js