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' : 'https://w3big.com'
}
json_str = json.dumps(data)
print ("Python 原始数据:", repr(data))
print ("JSON 对象:", json_str)
上記のコードの出力結果を実行します。
Python 原始数据: {'url': 'https://w3big.com', 'no': 1, 'name': 'w3big'}
JSON 对象: {"url": "https://w3big.com", "no": 1, "name": "w3big"}
結果は元のrepr()の出力が非常によく似て符号化することにより、簡単なタイプが続く、出力を通して見ることができます。
そして、上記の例では、我々は、Pythonのデータ構造に戻ってJSONでエンコードされた文字列を変換することができます。
#!/usr/bin/python3
import json
# Python 字典类型转换为 JSON 对象
data1 = {
'no' : 1,
'name' : 'w3big',
'url' : 'https://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': 'https://w3big.com'}
JSON 对象: {"name": "w3big", "no": 1, "url": "https://w3big.com"}
data2['name']: w3big
data2['url']: https://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