Python JSON

JSONはデータの保存および交換に使用される構文です。

JSONはJavaScriptオブジェクト記法(JavaScript object notation)で書かれたテキストです。

PythonのJSON

Pythonには、 json のビルティン packを、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)

実行例