python中解析json格式⽂件的⽅法⽰例
前⾔
JSON(JavaScript Object Notation) 是⼀种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition -December 1999)的⼀个⼦集。 JSON采⽤完全独⽴于语⾔的⽂本格式,但是也使⽤了类似于C语⾔家族的习惯(包括C,
C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语⾔。易于⼈阅读和编写,同时也易于机器解析和⽣成。
本⽂主要介绍的是python中解析json格式⽂件的⽅法,解析json⽂件⽆⾮编码和解码,这⾥我们⽤了python下⾃带的json模块。当然还要结合python本⾝特有的dict类型的操作。下⾯来看看详细的介绍吧。
编码
编码⽤到的是json.dumps()函数,将字典转化为json对象。
import json
data = [{'a':"A",'b':(2,4),'c':3.0}] #list对象
print "DATA:",repr(data)
data_string = json.dumps(data)#dumps函数
print "JSON:",data_string
输出的结果是:
DATA: [{'a':'A','c':3.0,'b':(2,4)}] #python的dict类型的数据是没有顺序存储的
JSON: [{"a":"A","c":3.0,"b":[2,4]}]
解码
解码⽤json.loads()函数,将json格式转化为dict。
import json
data = '{"a":"A","b":[2,4],"c":3.0}' #json格式
decoded = json.loads(data)
print "DECODED:",decodedpython怎么读取json文件
输出的结果是
DECODED: [{u'a': u'A', u'c': 3.0, u'b': [2, 4]}]
编码和解码的过程中,元组会被变成⽆次序的列表,⽽字典的次序也并不能保证不变。
现在,处理json格式的重点便成了正确处理dict类型数据了。
常见错误
python的json模块不⽀持单引号,所以类似"{'a':'A','b':[2,4],'c':3.0}"的字符串是会报以下错误的:
ValueError: Expecting property name: line 1 column 2 (char 1)
这时候我们只需要把他单双引号互换即可:
'{"a":"A","b":[2,4],"c":3.0}'
总结
以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作能带来⼀定的帮助,如果有疑问⼤家可以留⾔交流,谢谢⼤家对的⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论