TECH I.S.

Python JSON


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":"ジョン", "age":30, "city":"ニューヨーク"}' # 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": "ジョン", "age": 30})) print(json.dumps(["りんご", "バナナ"])) print(json.dumps(("りんご", "バナナ"))) print(json.dumps("こんにちは")) 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": "ジョン",   "age": 30,   "married": True,   "divorced": False,   "children": ("アン","ビリー"),   "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)


プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細