Latest web development tutorials

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