认识
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。
引用模块
import json
重要函数
- 编码:把一个Python对象编码转换成Json字符串 json.dumps()
- 解码:把Json格式字符串解码转换成Python对象 json.loads()
案例
Python解析Json字符串数组对象:
Python解析Json,Python格式化Json,
Python处理Json对象,Python处理Json数组
1 |
import json
|
2 |
data= json.loads(\'{"ID": "2", "IP":"192.168.1.186", "Port": "3000", "Sensor_Count":"1", "Control_Count": "1", "Sensors":{"Sensor_Name": "Json解析", "Type_Count": "1", "Types":{ "types":["temp","C"],"types":["hum","N"],}},"Controls":["LCD","Relay"] }\')
|
3 |
print data.ID |
4 |
输出结果:"2"
|
5 |
data = json.dump(data) |
6 |
print data |
7 |
输出结果:{"ID": "2", "IP":"192.168.1.186", "Port": "3000", "Sensor_Count":"1","Control_Count": "1", "Sensors":{"Sensor_Name": "tem", "Type_Count": "1", "Types":{"types":["temp","C"],"types":["hum","N"],}},"Controls":["LCD","Relay"] }
|
案例
排序
data1 = {\'b\':789,\'c\':456,\'a\':123}
data2 = {\'a\':123,\'b\':789,\'c\':456}
d1 = json.dumps(data1,sort_keys=True)
d2 = json.dumps(data2)
d3 = json.dumps(data2,sort_keys=True)
print d1
print d2
print d3
print d1==d2
注:本来data1和data2数据应该是一样的(词典无序的)
结果
缩进参数
data1 = {\'b\':789,\'c\':456,\'a\':123}
d1 = json.dumps(data1,sort_keys=True,indent=4)
print d1
结果
压缩
注:separators = (\',\', \':\')为固定吧,多或少或反都不是理想的结果