python3のJSONデータ分析
JSON(JavaScript Object Notation)は軽量のデータ交換形式です。 これは、ECMAScriptののサブセットに基づいています。
python3のJSONモジュールは、2つの機能を含む、JSONデータを符号化し、復号化するために使用することができます:
- json.dumps():データを符号化します。
- json.loadsは()のデータが復号されます。
JSONコーデック処理では、プリミティブ型のPythonとJSONタイプが互いに変換され、特定の変換の制御は次のように
型変換対応表としてエンコードされたPythonのJSON:
パイソン | JSON |
---|---|
辞書 | オブジェクト |
リスト、タプル | 配列 |
STR | 文字列 |
int型、float型、INT-&フロート由来の列挙型 | 数 |
真 | 真 |
偽 | 偽 |
なし | ヌル |
JSONはPythonの型変換対応表をデコード:
JSON | パイソン |
---|---|
オブジェクト | 辞書 |
配列 | リスト |
文字列 | STR |
番号(int型) | int型 |
数(実数) | フロート |
真 | 真 |
偽 | 偽 |
ヌル | なし |
json.dumpsとjson.loads例
次の例では、JSONにPythonのデータ構造を示しています。
#!/usr/bin/python3 import json # Python 字典类型转换为 JSON 对象 data = { 'no' : 1, 'name' : 'w3big', 'url' : 'http://www.w3big.com' } json_str = json.dumps(data) print ("Python 原始数据:", repr(data)) print ("JSON 对象:", json_str)
上記のコードの出力結果を実行します。
Python 原始数据: {'url': 'http://www.w3big.com', 'no': 1, 'name': 'w3big'} JSON 对象: {"url": "http://www.w3big.com", "no": 1, "name": "w3big"}
結果は元のrepr()の出力が非常によく似て符号化することにより、簡単なタイプが続く、出力を通して見ることができます。
そして、上記の例では、我々は、Pythonのデータ構造に戻ってJSONでエンコードされた文字列を変換することができます。
#!/usr/bin/python3 import json # Python 字典类型转换为 JSON 对象 data1 = { 'no' : 1, 'name' : 'w3big', 'url' : 'http://www.w3big.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'])
上記のコードの出力結果を実行します。
ython 原始数据: {'name': 'w3big', 'no': 1, 'url': 'http://www.w3big.com'} JSON 对象: {"name": "w3big", "no": 1, "url": "http://www.w3big.com"} data2['name']: w3big data2['url']: http://www.w3big.com
あなたがに対処したい場合は、ファイルの代わりに文字列である、あなたはJSONデータを符号化し、復号化するために()とjson.load()をjson.dump使用することができます。例えば:
# 写入 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