这里有新鲜出炉的 Python 入门,程序狗速度看过来!
Python 是一种面向对象、解释型计算机程序设计语言,由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年。Python 语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是 C/C++)很轻松地联结在一起。
这篇文章主要给大家介绍了 python 中解析 json 格式文件的相关资料,解析 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 对象。
- json.dumps()
- 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 格式转化为 dict。
- json.loads()
- import json
- data = '{"a":"A","b":[2,4],"c":3.0}' #json格式
- decoded = json.loads(data)
- print "DECODED:",decoded
输出的结果是
- 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}'
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对 PHPERZ 的支持。
来源: http://www.phperz.com/article/17/0527/334824.html