json python 字段读取,python dict写入文件
本文主要介绍python如何读取和存储dict()和。json格式文件,有很好的参考价值。希望对大家有帮助。
00-1010读取和存储dict()和。json格式文件读取。json格式化文件并将数据保存到字典中。在命令行上输出字典时json文件乱码将字符串数据转换为字典数据,并将字典数据写入json文件
目录
读取和存储dict()与.json格式文件
数据文件:hg.json
{ 商家名称 3360 真滋味港式粥火锅(工体店),评分 3360 27.0 ,地址 3360 ,在工人体育场东路2号中国红街3号楼2楼,人均消费 3360 174,评论数 3360 2307} {评分 3360 26.2 ,地址 3360 ,广顺南街路16号望京火锅,人均
对于以上数据,可以通过以下方法将json编码的字符串转换成python数据结构dict:
# -*-编码: utf-8 -*-
导入json
导入编解码器
数据=[]
带有codecs.open(hg.json , r , utf-8 )作为f:
对于f:中的线路
dic=json.loads(行)
数据追加
print(json.dumps(dic,indent=4,ensure _ ascii=False,encoding=utf-8 ))
读取.json格式文件并将数据保存到字典中
Dic={ 商家名称 : 京哥老灶火锅(望京新世界店),评分 3360 26.2,地址 3360 望京广顺南街路16号火锅,人均消费 3360 105,评论数 3360 1387}
带有codecs.open(hg.json , a , utf-8 )作为outf:
json.dump(dic,outf,确保_ascii=False)
outf.write(n )
保存字典数据到.json文件中
如果字典数据中有中文,打印dic不能正常显示中文。您可以使用以下方法来打印格式字典数据:
Dic={ 北京 3360 [446,208.7,11万],天津 3360 [454.2,219.8,12万],上海 3360 [498.6,319.7,31万]。
print(json.dumps(dic,ensure _ ascii=False,encoding=utf-8 ,indent=4))
在命令行中输出字典时的乱码问题
两种转换方法
user={name : LiHua ,性别 : 男,年龄 : 18}
dic1=eval(用户)
exec(dic2= user)
补充
一般来说,json解码会从提供的数据中创建一个字典或列表。如果要创建其他类型的对象,可以为json.loads()方法提供object_pairs_hook或object_hook参数。下面的例子说明了我们应该如何将json数据解码成OrderedDict(有序字典),这样就可以保持数据的顺序不变。
s={name:ACME , SHARES:50, PRICE:490}
从集合导入订单直接
data=json.load(s,object_pairs_hook=OrderedDict)
数据
OrderedDict([(name , ACME ),( shares ,50),( price ,490)]
将字符串数据转化为字典数据
现在要获取一个医学网站的数据并最终转换成dict类型,就需要将数据写入JSON文件,方便后期数据的使用。
带开(。/medical.json , w ,encoding=utf-8 )作为fp:
json.dump(data,fp)
但是最终的数据是这样的:
它应该是一个正常的中文字符串,但它是ascii编码的。因此,在转储方法中添加了一个guarantee _ ASCII参数。原因是dump()方法将字典转换为字符串,默认情况下unicode编码会以ASCII编码的方式输入到字符串中。
带开(。/medical.json , w ,encoding=utf-8 )作为fp:
json.dump(data,fp,ensure _ ascii=False)
以上个人经验,希望给你一个参考,也希望你能支持盛行的IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。