Как перебрать детей JSON в python? - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь перебрать ответ JSON от API листов Google. Моя цель - получить значения для каждого заголовка («Глава 1», «Глава 2» и т. Д.), Но я не могу продолжить итерацию после первого потомка объекта.

Я пытаюсь разобрать этот ответ.

Это то, что у меня сейчас есть:

request = service.spreadsheets().get(spreadsheetId=SPREADSHEET_ID, ranges=ranges, includeGridData=include_grid_data)
    response = request.execute()
    print(response)
    for x in response['sheets']:
        print(response['properties']['title'])

И он возвращает только 少女終末旅行 Volume 1 Vocab (как и следовало ожидать, поскольку итератор не используется).

Если я добавляю индекс после 'title', он возвращает символ в индексе этого итератора. Если я положу все это в response['sheets']['properties']['title'], то получится TypeError: list indices must be integers or slices, not str

Ответы [ 3 ]

1 голос
/ 03 апреля 2019

В вашем цикле for вы должны работать с переменной x, а не с response

for x in response['sheets']:
    print(x['properties']['title']
0 голосов
/ 03 апреля 2019

Вы можете написать print (response [x]), а не ответ [properties] [title]

Или

Вы можете написать x ["name].

Пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы. Я был бы очень рад помочь вам в этом.

0 голосов
/ 03 апреля 2019

Вы должны попробовать что-то вроде этого: -

# Codes ...
print(response)
for sheet in response['sheets']:
  print(sheet['properties']['title'])

Как только вы используете for x in y, вы должны использовать x, чтобы получить дополнительные значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...