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实现的一个找零钱的小程序代码分享
Aug 25 Python
基于scrapy实现的简单蜘蛛采集程序
Apr 17 Python
Python中的集合类型知识讲解
Aug 19 Python
python判断字符串编码的简单实现方法(使用chardet)
Jul 01 Python
详解python开发环境搭建
Dec 16 Python
Python爬虫番外篇之Cookie和Session详解
Dec 27 Python
DataFrame 将某列数据转为数组的方法
Apr 13 Python
python3下载抖音视频的完整代码
Jun 05 Python
pytorch 预训练层的使用方法
Aug 20 Python
Python操作qml对象过程详解
Sep 26 Python
用Python实现校园通知更新提醒功能
Nov 23 Python
Python绘制地图神器folium的新人入门指南
May 23 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中的string类型使用说明
2010/07/27 PHP
php使用curl和正则表达式抓取网页数据示例
2014/04/13 PHP
PHP正则表达式 /i, /is, /s, /isU等介绍
2014/10/23 PHP
php简单图像创建入门实例
2015/06/10 PHP
jQuery JSON的解析方式分享
2011/04/05 Javascript
JavaScript面向对象知识串结(读JavaScript高级程序设计(第三版))
2012/07/17 Javascript
JS控制输入框内字符串长度
2014/05/21 Javascript
jQuery拖动布局其结果保存到数据库
2015/10/09 Javascript
javascript面向对象程序设计高级特性经典教程(值得收藏)
2016/05/19 Javascript
JSON对象 详解及实例代码
2016/10/18 Javascript
JS中Map和ForEach的区别
2018/02/05 Javascript
微信小程序之分享页面如何返回首页的示例
2018/03/28 Javascript
jQuery+CSS实现的标签页效果示例【测试可用】
2018/08/14 jQuery
flexible.js实现移动端rem适配方案
2020/04/07 Javascript
Vue中添加滚动事件设置的方法详解
2020/09/14 Javascript
vue实现简单计算商品价格
2020/09/14 Javascript
利用Python抓取行政区划码的方法
2016/11/28 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
2018/01/24 Python
Python3实现购物车功能
2018/04/18 Python
django 发送手机验证码的示例代码
2018/04/25 Python
Django页面数据的缓存与使用的具体方法
2019/04/23 Python
对django views中 request, response的常用操作详解
2019/07/17 Python
python实现BP神经网络回归预测模型
2019/08/09 Python
Django之使用celery和NGINX生成静态页面实现性能优化
2019/10/08 Python
opencv python如何实现图像二值化
2020/02/03 Python
完美解决keras 读取多个hdf5文件进行训练的问题
2020/07/01 Python
python asyncio 协程库的使用
2021/01/21 Python
台湾团购、宅配和优惠券:17Life
2017/08/14 全球购物
美国在线咖啡、茶和餐厅供应商:LollicupStore
2018/05/04 全球购物
BookOutlet加拿大:在网上书店购买廉价折扣图书和小说
2018/10/05 全球购物
描述JSP和Servlet的区别、共同点、各自应用的范围
2012/10/02 面试题
人力资源部培训专员岗位职责
2014/01/02 职场文书
歌颂祖国的演讲稿
2014/05/04 职场文书
企业演讲稿范文大全
2014/05/20 职场文书
汽车运用工程专业求职信
2014/06/18 职场文书
青年志愿者活动方案
2014/08/17 职场文书