1. ホーム
  2. python

[解決済み] Python ネストされたJSONデータへのアクセス [重複] (英語)

2023-06-18 01:55:02

質問

私はzippopotam.usを使用して、特定の都市の郵便番号を取得しようとしています。以下のコードで動作しています。 post code キーにアクセスしようとすると TypeError: expected string or buffer

r = requests.get('http://api.zippopotam.us/us/ma/belmont')
j = r.json()

data = json.loads(j)

print j['state']
print data['places']['latitude']

完全なJSON出力。

{
"country abbreviation": "US",
"places": [
    {
        "place name": "Belmont",
        "longitude": "-71.4594",
        "post code": "02178",
        "latitude": "42.4464"
    },
    {
        "place name": "Belmont",
        "longitude": "-71.2044",
        "post code": "02478",
        "latitude": "42.4128"
    }
],
"country": "United States",
"place name": "Belmont",
"state": "Massachusetts",
"state abbreviation": "MA"
}

どのように解決するのですか?

最初のネストされた要素が実際には配列であることを認識していませんでした。郵便番号キーへの正しいアクセス方法は、以下の通りです。

r = requests.get('http://api.zippopotam.us/us/ma/belmont')
j = r.json()

print j['state']
print j['places'][1]['post code']