Python JSON

JSON 是用于存儲和交換數據的語法。

JSON 是用 JavaScript 對象表示法(JavaScript object notation)編寫的文本。

Python 中的 JSON

Python 有一個名為 json 的內置包,可用于處理 JSON 數據。

實例

導入 json 模塊:

import json

解析 JSON - 把 JSON 轉換為 Python

若有 JSON 字符串,則可以使用 json.loads() 方法對其進行解析。

結果將是 Python 字典。

實例

把 JSON 轉換為 Python:

import json
# 一些 JSON:
x =  '{ "name":"Bill", "age":63, "city":"Seatle"}'
# 解析 x:
y = json.loads(x)
# 結果是 Python 字典:
print(y["age"])

運行實例

把 Python 轉換為 JSON

若有 Python 對象,則可以使用 json.dumps() 方法將其轉換為 JSON 字符串。

實例

把 Python 轉換為 JSON:

import json
# Python 對象(字典):
x = {
  "name": "Bill",
  "age": 63,
  "city": "Seatle"
}
# 轉換為 JSON:
y = json.dumps(x)
# 結果是 JSON 字符串:
print(y)

運行實例

您可以把以下類型的 Python 對象轉換為 JSON 字符串:

  • dict
  • list
  • tuple
  • string
  • int
  • float
  • True
  • False
  • None

實例

將 Python 對象轉換為 JSON 字符串,并打印值:

import json
print(json.dumps({"name": "Bill", "age": 63}))
print(json.dumps(["apple", "bananas"]))
print(json.dumps(("apple", "bananas")))
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 JSON
dict Object
list Array
tuple Array
str String
int Number
float Number
True true
False false
None null

實例

轉換包含所有合法數據類型的 Python 對象:

import json
x = {
  "name": "Bill",
  "age": 63,
  "married": True,
  "divorced": False,
  "children": ("Jennifer","Rory","Phoebe"),
  "pets": None,
  "cars": [
    {"model": "Porsche", "mpg": 38.2},
    {"model": "BMW M5", "mpg": 26.9}
  ]
}
print(json.dumps(x))

運行實例

格式化結果

上面的實例打印一個 JSON 字符串,但它不是很容易閱讀,沒有縮進和換行。

json.dumps() 方法提供了令結果更易讀的參數:

實例

使用 indent 參數定義縮進數:

json.dumps(x, indent=4)

運行實例

您還可以定義分隔符,默認值為(", ", ": "),這意味著使用逗號和空格分隔每個對象,使用冒號和空格將鍵與值分開:

實例

使用 separators 參數來更改默認分隔符:

json.dumps(x, indent=4, separators=(". ", " = "))

運行實例

對結果排序

json.dumps() 方法提供了對結果中的鍵進行排序的參數:

實例

使用 sort_keys 參數來指定是否應對結果進行排序:

json.dumps(x, indent=4, sort_keys=True)

運行實例