Я не могу извлечь поле JSON с помощью PythonPython

Программы на Python
Ответить
Anonymous
 Я не могу извлечь поле JSON с помощью Python

Сообщение Anonymous »

Я знаю, что это обсуждалось много раз, но, попробовав разные вещи из нескольких постов, я все еще застрял. Проблема в том, что файл JSON кажется более сложным, чем большинство других, и мой код (который работает с более простыми ответами API) не запускается.
Мой код:

Код: Выделить всё

response = requests.get(grid_url)
grid_data = json.loads(response.text)
print (grid_data)
coal = grid_data["data"]["generationmix"]["fuel"]["coal"]
print("coal=" + coal)
Вывод на консоль:

Код: Выделить всё

{u'data': [{u'dnoregion': u'England', u'shortname': u'England', u'regionid': 15, u'data': [{u'to': u'2024-11-25T19:00Z', u'intensity': {u'index': u'moderate', u'forecast': 144}, u'from': u'2024-11-25T18:30Z', u'generationmix': [{u'fuel': u'biomass', u'perc': 8.8}, {u'fuel': u'coal', u'perc': 0}, {u'fuel': u'imports', u'perc': 10.3}, {u'fuel': u'gas', u'perc': 29}, {u'fuel': u'nuclear', u'perc': 7.3}, {u'fuel': u'other', u'perc': 0}, {u'fuel': u'hydro', u'perc': 1.8}, {u'fuel': u'solar', u'perc': 0}, {u'fuel': u'wind', u'perc': 42.7}]}]}]}

Traceback (most recent call last):
File "weather.py", line 153, in 
coal = grid_data["data"]["generationmix"]["fuel"]["coal"]
TypeError: list indices must be integers, not str
спасибо!

Подробнее здесь: https://stackoverflow.com/questions/792 ... ing-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»