У меня есть ответ API в следующем формате JSON.Если я хочу извлечь поле, например, геокод, как мне это сделать?Излишне ли помещать ответ в JSON?Я получаю сообщение о том, что индексы списка должны быть целыми числами, а не str.Заранее спасибо, новичок в этом.
Я пробовал:
import requests import json response = requests.get("https://api.weather.gov/alerts/active") data = response.json() json.loads(data['features']['id'][0]['properties'][0]['geocode'][0])
Ниже приведены данные JSON:
{ "@context": [ "https://raw.githubusercontent.com/geojson/geojson-ld/master/contexts/geojson-base.jsonld", { "wx": "https://api.weather.gov/ontology#", "@vocab": "https://api.weather.gov/ontology#" } ], "type": "FeatureCollection", "features": [ { "id": "https://api.weather.gov/alerts/NWS-IDP-PROD-2791383-2596094", "properties": { "@id": "https://api.weather.gov/alerts/NWS-IDP-PROD-2791383-2596094", "id": "NWS-IDP-PROD-2791383-2596094", "geocode": { "UGC": [ "PZZ560" ], "SAME": [ "057560" ] }, "references": [ "https://api.weather.gov/alerts/NWS-IDP-PROD-2790941-2595876" ], "status": "Actual", "parameters": { "NWSheadline": [ "SMALL CRAFT ADVISORY IN EFFECT" ], "eventEndingTime": [ "2018-04-26T21:00:00-07:00" ] } } }, ], "title": "Current watches, warnings, and advisories" }
Ошибка в иерархии, которую вы используете здесь:
json.loads(data['features']['id'][0]['properties'][0]['geocode'][0])
Правильно будет:
json.loads(data['features'][0]['properties']['geocode'])