Python で JSON を辞書に変換する

Hemank Mehtani 2021年10月22日
Python で JSON を辞書に変換する

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 Dictionary