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实现Dijkstra静态寻路算法
Jan 17 Python
Python实现去除图片中指定颜色的像素功能示例
Apr 13 Python
python高斯分布概率密度函数的使用详解
Jul 10 Python
Python 根据数据模板创建shapefile的实现
Nov 26 Python
Python 获取numpy.array索引值的实例
Dec 06 Python
django框架F&Q 聚合与分组操作示例
Dec 12 Python
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
Mar 20 Python
python线性插值解析
Jul 05 Python
Alpine安装Python3依赖出现的问题及解决方法
Dec 25 Python
Python自然语言处理之切分算法详解
Apr 25 Python
OpenCV3.3+Python3.6实现图片高斯模糊
May 18 Python
pytorch model.cuda()花费时间很长的解决
Jun 01 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
什么是调频(FM)、调幅(AM)、短波(SW)、长波(LW)
2021/03/01 无线电
腾讯QQ微博API接口获取微博内容
2013/10/30 PHP
Javascript操作select方法大全[新增、修改、删除、选中、清空、判断存在等]
2008/09/26 Javascript
js 与或运算符 || && 妙用
2009/12/09 Javascript
AJAX 网页保留浏览器前进后退等功能
2011/02/12 Javascript
一个页面元素appendchild追加到另一个页面元素的问题
2013/01/27 Javascript
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
2013/06/06 Javascript
jQuery 获取和设置select下拉框的值实现代码
2013/11/08 Javascript
jquery xMarquee实现文字水平无缝滚动效果
2014/04/29 Javascript
jQuery中contents()方法用法实例
2015/01/08 Javascript
JavaScript中常用的六种互动方法示例
2015/03/13 Javascript
JavaScript实现打字效果的方法
2015/07/10 Javascript
基于JQuery和CSS3实现仿Apple TV海报背景视觉差特效源码分享
2015/09/21 Javascript
浅谈JS读取DOM对象(标签)的自定义属性
2016/11/21 Javascript
Vue声明式渲染详解
2017/05/17 Javascript
详解Vue 全局引入bass.scss 处理方案
2018/03/26 Javascript
微信小程序npm引入vant-weapp的踩坑记录
2019/08/01 Javascript
Javascript中的this,bind和that使用实例
2019/12/05 Javascript
vue组件中传值EventBus的使用及注意事项说明
2020/11/16 Javascript
[34:44]Liquid vs TNC Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
Python中条件选择和循环语句使用方法介绍
2013/03/13 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
2019/03/01 Python
浅谈Python 递归算法指归
2019/08/22 Python
浅析Python3 pip换源问题
2020/01/06 Python
python怎么判断素数
2020/07/01 Python
基于Python的接口自动化读写excel文件的方法
2021/01/15 Python
html5图片上传预览示例分享
2014/04/14 HTML / CSS
“型”走纽约上东区:Sam Edelman
2017/04/02 全球购物
中国跨境电子商务网站:NewFrog
2018/03/10 全球购物
绿色城市实施方案
2014/03/19 职场文书
文艺演出策划方案
2014/06/07 职场文书
某集团股份有限公司委托书样本
2014/09/24 职场文书
工作简历的自我评价
2019/05/16 职场文书
祝福语集锦:朋友新店开业祝福语
2019/12/10 职场文书
golang实现一个简单的websocket聊天室功能
2021/10/05 Golang
Python实现制作销售数据可视化看板详解
2021/11/27 Python