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实现外卖信息管理系统
Jan 11 Python
PyQt5实现拖放功能
Apr 25 Python
Linux下python与C++使用dlib实现人脸检测
Jun 29 Python
python脚本监控Tomcat服务器的方法
Jul 06 Python
Python使用googletrans报错的解决方法
Sep 25 Python
使用python根据端口号关闭进程的方法
Nov 06 Python
记一次python 内存泄漏问题及解决过程
Nov 29 Python
使用WingPro 7 设置Python路径的方法
Jul 24 Python
Python IDE Pycharm中的快捷键列表用法
Aug 08 Python
Python进程,多进程,获取进程id,给子进程传递参数操作示例
Oct 11 Python
Python3读写Excel文件(使用xlrd,xlsxwriter,openpyxl3种方式读写实例与优劣)
Feb 13 Python
python实现图片转换成素描和漫画格式
Aug 19 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
Windows下利用Gvim写PHP产生中文乱码问题解决方法
2011/04/20 PHP
php解析url的三个示例
2014/01/20 PHP
Codeigniter+PHPExcel实现导出数据到Excel文件
2014/06/12 PHP
简介WordPress中用于获取首页和站点链接的PHP函数
2015/12/17 PHP
Smarty分页实现方法完整实例
2016/05/11 PHP
PHP7标量类型declare用法实例分析
2016/09/26 PHP
php数组遍历类与用法示例
2019/05/24 PHP
由JavaScript中call()方法引发的对面向对象继承机制call的思考
2011/09/12 Javascript
JS正则表达式验证数字代码
2014/01/28 Javascript
jquery和雅虎的yql服务实现天气预报服务示例
2014/02/08 Javascript
JavaScript获取XML数据附示例截图
2014/03/05 Javascript
JS 实现列表与多选框选择附预览动画
2014/10/29 Javascript
jQuery实现的数值范围range2dslider选取插件特效多款代码分享
2015/08/27 Javascript
详解jQuery移动页面开发中的ui-grid网格布局使用
2015/12/03 Javascript
详解jQuery Mobile自定义标签
2016/01/06 Javascript
JavaScript代码判断输入的字符串是否含有特殊字符和表情代码实例
2017/08/17 Javascript
原生JS实现图片无缝滚动方法(附带封装的运动框架)
2017/10/01 Javascript
node.js中axios使用心得总结
2017/11/29 Javascript
JavaScript中join()、splice()、slice()和split()函数用法示例
2018/08/24 Javascript
python字符串编码识别模块chardet简单应用
2015/06/15 Python
python中set常用操作汇总
2016/06/30 Python
sublime text 3配置使用python操作方法
2017/06/11 Python
Python网络爬虫与信息提取(实例讲解)
2017/08/29 Python
pygame库实现俄罗斯方块小游戏
2019/10/29 Python
Tensorflow: 从checkpoint文件中读取tensor方式
2020/02/10 Python
Python中有几个关键字
2020/06/04 Python
ProBikeKit德国:在线公路自行车专家
2018/06/03 全球购物
俄罗斯美容和健康网上商店:Созвездие Красоты
2019/07/23 全球购物
印度排名第一的蛋糕、鲜花和礼品送货:Winni
2019/08/02 全球购物
公证委托书模板
2014/04/03 职场文书
情况说明书格式范文
2014/05/06 职场文书
责任担保书范文
2014/05/21 职场文书
六年级数学教学反思
2016/02/16 职场文书
Django项目如何获得SSL证书与配置HTTPS
2021/04/30 Python
Java基础之详解HashSet的使用方法
2021/06/30 Java/Android
MySQL学习之基础操作总结
2022/03/19 MySQL