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之日期与时间处理模块(date和datetime)
Feb 16 Python
python 表达式和语句及for、while循环练习实例
Jul 07 Python
python去除字符串中的换行符
Oct 11 Python
python使用tensorflow保存、加载和使用模型的方法
Jan 31 Python
python logging日志模块以及多进程日志详解
Apr 18 Python
Python图像的增强处理操作示例【基于ImageEnhance类】
Jan 03 Python
浅谈python的输入输出,注释,基本数据类型
Apr 02 Python
Python中输入和输出(打印)数据实例方法
Oct 13 Python
Django项目使用ckeditor详解(不使用admin)
Dec 17 Python
Python3 实现爬取网站下所有URL方式
Jan 16 Python
python3.8.1+selenium实现登录滑块验证功能
May 22 Python
python实现简单聊天功能
Jul 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中stream(流)的用法
2014/03/25 PHP
在Mac OS上自行编译安装Apache服务器和PHP解释器
2015/12/24 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
2016/12/25 PHP
form表单传递数组数据、php脚本接收的实例
2017/02/09 PHP
PHP PDOStatement::execute讲解
2019/01/31 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
JQuery对id中含有特殊字符的转义处理示例
2013/09/06 Javascript
JavaScript改变HTML元素的样式改变CSS及元素属性
2013/11/12 Javascript
jquery交替变换颜色的三种方法 实例代码
2013/11/19 Javascript
php常见的页面跳转方法汇总
2015/04/15 Javascript
KnockoutJS 3.X API 第四章之表单textInput、hasFocus、checked绑定
2016/10/11 Javascript
jquery 动态增加删除行的简单实例(推荐)
2016/10/12 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
2016/12/23 Javascript
vue实现列表的添加点击
2016/12/29 Javascript
JS使用面向对象技术实现的tab选项卡效果示例
2017/02/28 Javascript
vue组件如何被其他项目引用
2017/04/13 Javascript
bootstrap的工具提示实例代码
2017/05/17 Javascript
nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例
2018/01/05 NodeJs
JS实现指定区域的全屏显示功能示例
2019/04/25 Javascript
JQuery使用属性addClass、removeClass和toggleClass实现增加和删除类操作示例
2019/11/18 jQuery
使用nodeJS中的fs模块对文件及目录进行读写,删除,追加,等操作详解
2020/02/06 NodeJs
Python的SQLAlchemy框架使用入门
2015/04/29 Python
分析并输出Python代码依赖的库的实现代码
2015/08/09 Python
浅谈Python中带_的变量或函数命名
2017/12/04 Python
Python+selenium实现截图图片并保存截取的图片
2018/01/05 Python
python程序变成软件的实操方法
2019/06/24 Python
opencv python 图像轮廓/检测轮廓/绘制轮廓的方法
2019/07/03 Python
python中Ansible模块的Playbook的具体使用
2020/05/28 Python
表演方阵解说词
2014/02/08 职场文书
《草原》教学反思
2014/02/15 职场文书
《望庐山瀑布》教学反思
2014/04/22 职场文书
2014年管理人员工作总结
2014/12/01 职场文书
2014年会计主管工作总结
2014/12/20 职场文书
毕业生政审意见范文
2015/06/04 职场文书
给领导敬酒词
2015/08/12 职场文书
详解python的内存分配机制
2021/05/10 Python