Python與JSON
阿新 • • 發佈:2020-12-09
JSON是JavaScript Object Notation的簡寫,即JavaScript物件標記。
JSON是一種輕量級的資料交換格式。
字串是JSON的表現形式。
JSON字串:符合JSON格式的字串。如:{"name": "qiyue"}
JSON字串中的key需要加雙引號。
JSON的優勢:
- 易於閱讀
- 易於解析
- 網路傳輸效率高(輕量、簡潔)
- 非常適合做跨語言交換資料
反序列化
反序列化:由字串到某一種語言的資料結構的解析過程。
json字串(json object)對應到python中是字典形式。
方法:json.loads()
示例:
import json
json_str='{"name":"qiyue","age":18}'
student=json.loads(json_str)
print(type(student))
print(student)
#執行結果
> python p5.py
<class 'dict'>
{'name': 'qiyue', 'age': 18}
loads()函式主要功能:將json的資料型別轉換為python的資料型別。
示例(json陣列格式轉換為python中的list資料結構):
import json json_str2='[{"name":"qiyue","age":18,"flag":false},{"name":"妲己","age":17}]' #有兩個object的陣列 student=json.loads(json_str2) print(type(student)) print(student) #執行結果 > python p5.py <class 'list'> [{'name': 'qiyue', 'age': 18, 'flag': False}, {'name': '妲己', 'age': 17}]
JSON和Python中的資料格式對應
序列化
序列化:python的資料型別向JSON字串轉換的過程。
方法:json.dumps()
import json student=[ {'name': 'qiyue', 'age': 18, 'flag': False}, {'name': '妲己', 'age': 17} ] json_str=json.dumps(student) print(type(json_str)) print(json_str) #執行結果 > python p4.py <class 'str'> [{"name": "qiyue", "age": 18, "flag": false}, {"name": "\u59b2\u5df1", "age": 17}] #中文輸出的是unicode編碼的結果
Tips:
JSON物件:如果放在javascript裡面說,json物件這個說法是成立的;如果跳出語言範疇,沒有json物件這個說法。
JSON並不是Javascript的附屬。