JSON(JavaScript Object Notation)輕量級的資料交換語言,容易閱讀的文字為主,用來傳輸由屬性值或者序列性的值組成的資料物件。
陣列(array)用中括號
[ ]
[0,5,6,2,7,8,4]
物件(object)用大括號 { }
用key-value
的方式儲存
"id": 123,
"Name": "wsrsw",
"Email": "wsrsw@example.com",
"contents": [
"subject":"Math",
"score":80
"subject":"English",
"score":90
JSON 模組
json是現有REST API的主流形式。json的編碼和解碼在python 中可以透過json套件完成。
json與python資料類型轉換關係表:
Python
需要使用json模塊的loads()
import json
str1 = '{"id": 123, "Name": "wsrsw", "Email": "wsrsw@example.com"}'
j = json.loads(str1)
print(j)
print(type(j))
{'id': 123, 'Name': 'wsrsw', 'Email': 'wsrsw@example.com'}
<class 'dict'>
dict轉JSON字串
python物件轉json字串
需要使用json模塊的dumps()
import json
j = {'id': 123, 'Name': 'wsrsw', 'Email': 'wsrsw@example.com'}
str1 = json.dumps(j)
print(str1)
print(type(str1))
{"id": 123, "Name": "wsrsw", "Email": "wsrsw@example.com"}
<class 'str'>
dict包含list轉JSON字串
可以使用indent
=> 可以使得數據存儲的格式容易解讀。
import json
python_dict = {"id":[1,2,3], "name": ["Tim", "Bob", "Lucy"]}
print(python_dict, type(python_dict))
#轉成json字串
j = json.dumps(python_dict, indent = 4)
print(j, type(j))
{'id': [1, 2, 3], 'name': ['Tim', 'Bob', 'Lucy']} <class 'dict'>
"id": [
"name": [
"Tim",
"Bob",
"Lucy"
} <class 'str'>
json.dumps()
將python物件轉成json字串,返回type為str
從python物件轉換為json字串
json.loads()
將json字串,返回python物件,返回type為dict
從json字串轉換為python物件
王者歸來:精通物聯網及Python / 作者: 劉凱