ホーム プログラミング言語 Web関連 json Python JSON の解析と作成

Python JSON の解析と作成

このセクションでは、Python を使用して JSON データを作成および解析する方法を紹介します。

PHP と同様に、Python にも JSON データを作成および解析するための 2 つの関数が用意されています。注: このセクションは Python3 に基づいています
  • json.dumps(): Python オブジェクトを JSON データに変換します。
  • json.loads(): JSON データを Python オブジェクトに解析します。

json.dumps()

Python では、json.dumps() 関数を使用して Python オブジェクトを JSON データに変換できます。構文は次のとおりです。

json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding=”utf-8″, default=None, sort_keys=False, **kw)

パラメータの説明は次のとおりです。
  • obj: JSON データに変換する Python オブジェクト。
  • skipkeys: デフォルト値は False. dict のキーのデータが Python の基本型 (str、unicode、int、long、float、bool、None) でない場合、TypeError エラーが報告されます。 True に設定すると、クラス キーがスキップされます。
  • ensure_ascii: デフォルト値は True です。つまり、ASCLL コードを出力します。False に設定すると、中国語を出力できます。
  • check_circular: 値が False の場合、コンテナー タイプの循環参照チェックはスキップされ、循環参照によってオーバーフロー エラーが発生します。
  • allow_nan: The default value is True. JSON 仕様以外の Float 型 (例: nan、inf、-inf) を扱う場合、JavaScript で同等の型 (例: NaN、Infinity、-Infinity) に変換します。 False の場合、ValueError が発生します。
  • cls: JSONCoder クラスを置き換えるカスタム JSONEncoder サブクラスを指定するために使用されます。
  • indent: 指定された値に従って、データがより明確に読み取れるように、データがインデントされて表示されます。
  • セパレーター: セパレーターは、それぞれ、異なる dict アイテム間のセパレーター、および dict アイテムの,と値の間のセパレーターを設定し、コロン:とコンマの後のすべてのスペースを削除します。
  • encoding: JSON データのエンコード方式を設定します。デフォルトは UTF-8 です。
  • デフォルト: オブジェクトをシリアライズできない場合に呼び出される関数を指定します。
  • sort_keys: 値が True の場合、dict に従って (a から z) 出力をソートすることを意味します。

サンプルコードは次のとおりです。
 
import json

dictionary = {"title":"JSONチュートリアル","author":"IT基礎","url":"https://it-kiso.com/","catalogue":["JSONとは","JSONPとは","JSON文法規則"]}
jsonString = json.dumps(dictionary, indent=4, ensure_ascii=False)
print(jsonString) 
操作の結果は次のとおりです。

{
“title”: “JSONによる”,
“author”: “IT の基本”,
“url”: “https://it-kiso.com/”,
“カタログ”: [
“JSONとは”,
“JSONPとは”,
「JSON文法規則」
]
}

json.load()

Python では、json.loads() 関数を使用して、次の構文で JSON データを Python オブジェクトに変換できます。

json.loads(s[、encoding[、cls[、object_hook[、parse_float[、parse_int[、parse_constant[、object_pairs_hook[、**kw]]]]]]]])

パラメータの説明は次のとおりです。
  • s: 変換される JSON データ。str、bytes、または bytearray のいずれかです。
  • encoding: オプションのパラメーター。JSON データのエンコード方法を設定します。デフォルトは UTF-8 です。
  • cls: オプションのパラメーター。JSONCoder クラスを置き換えるカスタム JSONCoder サブクラスを指定するために使用されます。
  • object_hook: オプションのパラメーター。関数の戻り値を指定された型に置き換えます。この関数を使用して、JSON-RPC などのカスタム デコーダーを実装できます。
  • parse_float: オプションのパラメーター。このパラメーターが指定されている場合、JSON データをデコードするときに、float 型に準拠する文字列が指定された型に変換されます。
  • parse_int: オプションのパラメーター。このパラメーターが指定されている場合、JSON データをデコードするときに、int 型に準拠する文字列が指定された型に変換されます。
  • parse_constant: オプションのパラメーター。このパラメーターが指定されている場合、JSON データをデコードするときに、-Infinity、Infinity、NaN などの文字列が表示された場合、指定されたメソッドが呼び出されます。
  • object_pairs_hook: オプションのパラメーター。結果はキーと値の順序付きリストの形式で返されます。object_hook と object_pairs_hook が同時に指定された場合は、最初に object_pairs_hook の設定に従って返されます。

サンプルコードは次のとおりです。
 
import json

json_str = '{"title":"JSONチュートリアル","author":"IT基礎","url":"https://it-kiso.com/","catalogue":["JSONとは","JSONPとは","JSON文法規則"]}'
data = json.loads(json_str)
print(data) 
操作の結果は次のとおりです。

{‘title’: ‘JSON について’, ‘author’: ‘IT の基本’, ‘url’: ‘https://it-kiso.com/’, ‘catalog’: [‘JSON とは’, ‘JSONP は何? ‘, ‘JSON 文法規則’]}

「 Python JSON の解析と作成」についてわかりやすく解説!絶対に観るべきベスト2動画

Bài tập lập trình Python: Thao tác với file JSON
【超簡単】Cloud Natural Language APIを活用してテキストから感情分析を行う方法についてわかりやすく解説