1、Python中JSON
Python有一个json
的内置程序包,可用于处理JSON数据。
例如:
导入json模块:
import json
2、解析JSON—从JSON转换为Python对象
如果有JSON字符串,则可以使用json.loads()
方法进行解析。
结果将是一个Python字典。
例如:
从JSON转换为Python:
import json
x = '{ "name":"cjavapy", "age":3, "city":"china"}'
# 解析 x:
y = json.loads(x)
print(y["name"])
3、从Python对象转换成JSON
如果有Python对象,则可以使用json.dumps()
方法将其转换为JSON字符串。
例如:
从Python对象转换为JSON:
import json
# a Python object (dict):
x = '{ "name":"cjavapy", "age":3, "city":"china"}'
# convert into JSON:
y = json.dumps(x)
#结果是 JSON string:
print(y)
下列类型可以转换Python对象成JSON字符串:
dict
list
tuple
string
int
float
True
False
None
例如:
将Python对象转换为JSON字符串,并输出值:
import json
print(json.dumps({"name": "cjavapy", "age": 3}))
print(json.dumps(["python", "cjavapy"]))
print(json.dumps(("python", "cjavapy")))
print(json.dumps("hello"))
print(json.dumps(42))
print(json.dumps(31.76))
print(json.dumps(True))
print(json.dumps(False))
print(json.dumps(None))
从Python对象转换为JSON时,Python对象将转换为等效的JSON(JavaScript):
例如:
转换包含所有合法数据类型的Python对象:
import json
x = {
"name": "python",
"age": 20,
"married": True,
"divorced": False,
"children": ("c","python"),
"pets": None,
"langs": [
{"model": "java", "year": 5},
{"model": "python", "year": 6}
]
}
print(json.dumps(x))
4、格式化json.dumps()生成的JSON字符串
上面的示例显示了一个JSON字符串,但是它不是很容易阅读,没有缩进和换行符。
json.dumps()
方法有一些参数,以便更容易地读取结果:
例如:
使用indent
参数定义缩进数量:
json.dumps(x, indent=4)
还可以定义分隔符,默认值为(", ", ": "),这意味着使用逗号和空格分隔每个对象,并使用冒号和空格分隔键和值:
例如:
使用separators
参数更改默认的分隔符:
json.dumps(x, indent=4, separators=(". ", " = "))
5、对json.dumps()结果排序
json.dumps()
方法有对结果中的键进行排序的参数:
例如:
使用sort_keys
参数指定是否对结果进行排序:
json.dumps(x, indent=4, sort_keys=True)
6、使用第三方库:Demjson
Demjson 是 python 的第三方模块库,可用于编码和解码 JSON 数据,包含了 JSONLint 的格式化及校验功能。
Github 地址:https://github.com/dmeranda/demjson
官方地址:http://deron.meranda.us/python/demjson/
1)环境配置
在使用 Demjson 编码或解码 JSON 数据前,我们需要先安装 Demjson 模块。本教程我们会下载 Demjson 并安装:
tar -xvzf demjson-2.2.3.tar.gz
cd demjson-2.2.3
python setup.py install
更多安装介绍文档:http://deron.meranda.us/python/demjson/install
2)JSON 函数
3)encode使用
Python encode()
函数用于将 Python 对象编码成 JSON 字符串。
语法
demjson.encode(self, obj, nest_level=0)
以下实例将数组编码为 JSON 格式数据:
#!/usr/bin/python
import demjson
data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
json = demjson.encode(data)
print(json)
以上代码执行结果为:
[{"a":1,"b":2,"c":3,"d":4,"e":5}]
4)decode使用
Python 可以使用 demjson.decode()
函数解码 JSON 数据。该函数返回 Python 字段的数据类型。
语法
demjson.decode(self, txt)
以下实例展示了Python 如何解码 JSON 对象:
#!/usr/bin/python
import demjson
json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
text = demjson.decode(json)
print(text)
以上代码执行结果为:
{u'a':1, u'c':3, u'b':2, u'e':5, u'd':4}
了解更多分析及数据抓取可查看:
http://cloud.yisurvey.com:9081/html/bd9fb365-ae11-4182-84d0-af28197bac71.html?ly=csdn
本文转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请联系我们删除处理。
特别说明:本文旨在技术交流,请勿将涉及的技术用于非法用途,否则一切后果自负。如果您觉得我们侵犯了您的合法权益,请联系我们予以处理