認識
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 = (',', ':')為固定吧,多或少或反都不是理想的結果

