Извлечь значение из данных json, используя python - PullRequest
0 голосов
/ 20 января 2020

После выполнения запроса API я получаю json «данные», каждая запись в отдельном наборе, если фигурные скобки заключены в квадратные скобки результатов.

Я хочу извлечь числа и сохранить / распечатать их через запятую.

поэтому запросил вывод

0010041,0010042

Я попытался использовать приведенное ниже, однако он возвращается со следующей ошибкой.

TypeError: list indices must be integers or slices, not str

Если у результатов есть только один набор скобок, это нормально работает, нужно ли преобразовывать несколько результатов в один, а затем извлекать все разы, когда появляется «число»?

import json
import sys

#load the data into an element
data={'result': [{'number': '0010041', 'day_of_week': 'monday'}, {'number': '0010042', 'day_of_week': 'tuesday'}]}

#dumps the json object into an element
json_str = json.dumps(data)

#load the json to a string
resp = json.loads(json_str)

print (resp['result'])
print (resp['result']['number'])

1 Ответ

4 голосов
/ 20 января 2020

Сообщение об ошибке ясно: вы пытаетесь получить доступ к списку диктов, и вы делаете это неправильно.

Замените последнюю строку на:

for i in resp['result']:
    print(i['number'])

Обновление:

Как предлагается в комментариях, вы можете использовать понимание списка. Таким образом, чтобы получить желаемый результат, вы можете сделать:

print(",".join([i['number'] for i in resp['result']]))
...