python读取和存储dict()与.json格式文件

本文介绍了如何使用Python处理JSON格式的数据,包括读取并解析.json文件中的数据、将字典数据保存到.json文件中、解决命令行输出字典时的乱码问题以及将字符串转换为字典的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这篇是不是用markdown格式写的,显示代码不太友好,csdn又不支持在原文上直接修改编辑格式,因此在markdown格式下重新将此文编辑了一遍,且內容有更新,点击即可 : http://blog.youkuaiyun.com/qq_23926575/article/details/76566209

一、读取.json格式文件并将数据保存到字典中:

{"商家名称": "珍滋味港式粥火锅(工体店)", "评分": 27.0, "地址": "火锅工人体育场东路丙2号中国红街3号楼2层里", "人均消费": 174, "评论数量": 2307}
{"商家名称": "井格老灶火锅(望京新世界店)", "评分": 26.2, "地址": "火锅望京广顺南大街路16号", "人均消费": 105, "评论数量": 1387}
{"商家名称": "脸谱港式火锅(酒仙桥丽都店)", "评分": 24.5, "地址": "火锅芳园西路6号一层", "人均消费": 218, "评论数量": 39}


当获取的数据为上述类型,即每个字典之间以回车分割时,可以采用如下方法对数据进行获取:

# -*- coding: utf-8 -*-
import json
f=open("hg.json","r")
for line in f:
    decodes=json.loads(line)
    print decodes[u"评论数量"] 
f.close()
如果要把数据保存到dict中,可以使用如下方法:

# -*- coding: utf-8 -*-
import json
f=open("filename.json","r")
data=list()
for line in f:
    data.append(json.loads(line))
    print "%d,%d,%.1f"%(data[i][u"评论数量"],data[i][u"人均消费"],data[i][u"评分"])
print data
f.close()

二、保存字典数据到.json文件中

dic={"商家名称": "井格老灶火锅(望京新世界店)", "评分": 26.2, "地址": "火锅望京广顺南大街路16号", "人均消费": 105, "评论数量": 1387}
with open(filename+'.json','a') as outfile:
    json.dump(dic,outfile,ensure_ascii=False)
    outfile.write('\n')

三、在命令行中输出字典时的乱码问题

ubuntu下如果在命令行中直接: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')

四、将字符串数据转化为字典数据

user = "{'name' : 'LiHua', 'sex' : 'male', 'age': 18}"
dic1=eval(user)
exec("dic2="+user)


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值