Python JSON 使用指南:解析和轉換資料

小萬哥丶發表於2023-11-01

JSON 是一種用於儲存和交換資料的語法。JSON 是文字,使用 JavaScript 物件表示法編寫。

Python 中的 JSON

Python 有一個內建的 json 包,可用於處理 JSON 資料。

示例:匯入 json 模組:

import json

解析 JSON - 從 JSON 轉換為 Python

如果您有一個 JSON 字串,可以使用 json.loads() 方法來解析它。結果將是一個 Python 字典。

示例:從 JSON 轉換為 Python:

import json

# 一些 JSON:
x = '{ "name":"John", "age":30, "city":"New York"}'

# 解析 x:
y = json.loads(x)

# 結果是一個 Python 字典:
print(y["age"])

從 Python 轉換為 JSON

如果您有一個 Python 物件,可以使用 json.dumps() 方法將其轉換為 JSON 字串。

示例:從 Python 轉換為 JSON:

import json

# 一個 Python 物件(字典):
x = {
  "name": "John",
  "age": 30,
  "city": "New York"
}

# 轉換為 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": "John", "age": 30}))
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 物件轉換為 JSON 字串:

import json

x = {
  "name": "John",
  "age": 30,
  "married": True,
  "divorced": False,
  "children": ("Ann","Billy"),
  "pets": None,
  "cars": [
    {"model": "BMW 230", "mpg": 27.5},
    {"model": "Ford Edge", "mpg": 24.1}
  ]
}

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)

最後

為了方便其他裝置和平臺的小夥伴觀看往期文章:公眾號搜尋Let us Coding,或者掃描下方二維碼,關注公眾號,即可獲取最新文章。

看完如果覺得有幫助,歡迎點贊、收藏關注

image

相關文章