Python3 JSONデータ解析

JSON (JavaScript Object Notation) は軽量なデータ交換フォーマットです。

JSONについてまだよく知らない場合は、まず私たちのJSONチュートリアル。

Python3では、jsonモジュールを使用してJSONデータをエンコード/デコードできます。これには2つの関数が含まれています:

  • json.dumps(): データをエンコードします。
  • json.loads(): データをデコードします。

jsonのエンコード/デコード処理中に、Pythonのプリミティブ型とJSON型は相互に変換されます。具体的な変換の対応は次のとおりです:

PythonからJSONへの型変換対応表:

Python JSON
dict object
list, tuple array
str string
int, float, int- & float-derived Enums number
True true
False false
None null

JSONからPythonへの型変換対応表:

JSON Python
object dict
array list
string str
number (int) int
number (real) float
true True
false False
null None

json.dumps と json.loads の例

以下の例は、Pythonデータ構造をJSONに変換する方法を示しています:

例(Python 3.0+)

#!/usr/bin/python3 import json # Pythonの辞書型をJSONオブジェクトに変換 data = { 'no' : 1, 'name' : 'サンプル', 'url' : 'https://www.example.com' } json_str = json.dumps(data) print ("Pythonの元のデータ:", repr(data)) print ("JSONオブジェクト:", json_str)

上記のコードを実行すると、出力結果は次のようになります:

Python 原始数据: {'no': 1, 'name': 'サンプル', 'url': 'https://www.example.com'}
JSON 对象: {"no": 1, "name": "サンプル", "url": "https://www.example.com"}

出力結果からわかるように、単純な型はエンコード後、元のrepr()出力結果と非常に似ています。

上記の例に続いて、JSONエンコードされた文字列をPythonデータ構造に戻すことができます:

例(Python 3.0+)

#!/usr/bin/python3 import json # Pythonの辞書型をJSONオブジェクトに変換 data1 = { 'no' : 1, 'name' : 'サンプル', 'url' : 'http://www.example.com' } json_str = json.dumps(data1) print ("Pythonの元のデータ:", repr(data1)) print ("JSONオブジェクト:", json_str) # JSONオブジェクトをPythonの辞書に変換 data2 = json.loads(json_str) print ("data2['name']: ", data2['name']) print ("data2['url']: ", data2['url'])

上記のコードを実行すると、出力結果は次のようになります:

Python 原始数据: {'name': 'サンプル', 'no': 1, 'url': 'http://www.example.com'}
JSON 对象: {"name": "サンプル", "no": 1, "url": "http://www.example.com"}
data2['name']:  サンプル
data2['url']:  http://www.example.com

文字列ではなくファイルを処理する場合は、次を使用できますjson.dump()とjson.load()JSONデータをエンコードおよびデコードします。例:

例(Python 3.0+)

# JSONデータを書き込む with open('data.json', 'w') as f: json.dump(data, f) # データを読み取る with open('data.json', 'r') as f: data = json.load(f)

詳細については、以下を参照してください:https://docs.python.org/3/library/json.html その他の拡張