Python で JSON を辞書に変換する
Hemank Mehtani
2021年10月22日
JSON は JavaScriptObject Notation であり、データの保存と転送に使用されます。Python プログラミング言語は、json
と呼ばれる組み込みライブラリパッケージを介して JSON をサポートします。その形式は、Python の辞書やリストと非常によく似ています。
このチュートリアルでは、JSON 文字列を Python の辞書に変換します。
json.load()
関数は、JSON 文字列を解析するために使用されます。この関数によって返される最終的なタイプは、読み取っている JSON データのタイプによって異なります。角括弧が見つかると、データがリストとして読み取られます。中括弧に遭遇すると、最後のタイプは辞書にあります。
以下のコードを参照してください。
import json
j_data = """
{
"0":{
"Name": "Nick",
"Age": "22"
},
"1":{
"Name": "Hemank",
"Age": "21"
},
"2":{
"Name": "Sam",
"Age":"25"
}
}
"""
d = json.loads(j_data)
print(d)
print(d["0"]["Name"])
print(d["1"]["Age"])
出力:
{'0': {'Name': 'Nick', 'Age': '22'}, '1': {'Name': 'Hemank', 'Age': '21'}, '2': {'Name': 'Sam', 'Age': '25'}}
Nick
21
上記の例の JSON データの形式に注意してください。中括弧で囲まれています。そのため、最終的な出力は辞書の形式になります。また、キーを使用して辞書をトラバースし、個々の値にアクセスしました。
ただし、データが角かっこで囲まれている場合、json.loads()
関数はリスト内のデータを読み取ります。リストから辞書要素を選択できます。
例えば、
import json
j_data = """
[{
"0":{
"Name": "Nick",
"Age": "22"
},
"1":{
"Name": "Hemank",
"Age": "21"
},
"2":{
"Name": "Sam",
"Age":"25"
}
}
]
"""
d = json.loads(j_data)
print(d[0])
出力:
{'0': {'Name': 'Nick', 'Age': '22'}, '1': {'Name': 'Hemank', 'Age': '21'}, '2': {'Name': 'Sam', 'Age': '25'}}
JSON データのわずかな変更に注意してください。最後のタイプはリストです。そのため、最初の要素である辞書を抽出します。同様に、個々のキーを使用して辞書をトラバースし、さまざまな値にアクセスできます。
関連記事 - Python JSON
- Python で URL から JSON を取得する
- Python で JSON ファイルをきれいに出力する方法
- JSON Diff を使用した Python のマルチレベル JSON オブジェクトの比較
- Python クラス オブジェクトを JSON にシリアル化する
- Python で JSON をフラット化する
- Python を使用して JSON ファイルにデータを追加する