@romanprix

Как распарсить json, который получили get запросом из библиотеки requests?

Есть get запрос типа: response = requests.get(...)
он передает json, а мне необходимо вытащить один key-value из этого всего jsona
r.json() = переводит json в list, а не в dictionary
Как мне распарсить json таким образом, чтобы перевести его хотя бы в dictionary и вообще получить доступ к key-value?
  • Вопрос задан
  • 755 просмотров
Пригласить эксперта
Ответы на вопрос 1
idegree
@idegree
Senior Workaround Developer
А JSON то в ответе какой? Он вполне может быть и listом. Тогда, вероятно, чтобы добраться до dictа нужно проитерироваться по списку?

Из RFC JSONа:
JSON can represent four primitive types (strings, numbers, booleans, and null) and two structured types (objects and arrays).

Так что стоит проверить получившийся тип, прежде чем работать с ним.

Пример со списком:

data.json:
[
  {
    "name": "Alice",
    "age": 18
  },
  {
    "name": "Bob",
    "age": 21
  }
]

example.py:
import requests


def main():
    r = requests.get('http://localhost:63341/data.json')
    data = r.json()
    print(data, type(data))
    # [{'name': 'Alice', 'age': 18}, {'name': 'Bob', 'age': 21}] <class 'list'>
    for item in data:
        print(item.get('name'))
    # Alice
    # Bob


if __name__ == '__main__':
    main()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы