Ввод API JSON ожидаемого формата - PullRequest
0 голосов
/ 26 мая 2020

У меня есть функция, которая обращается к API и возвращает его JSON:

def get_api():
    return requests.get(url).json()

Такой ответ имеет следующий тип:

[{id: 3, name: 'X'},{id: 7, name: 'Y'},...]

Я хотел бы объявить тип возвращаемого значения, чтобы линтинг знал об этом, поэтому, когда я пишу:

r=get_api()
for e in r:
    print(e["id"]) # linting ok
    print(e["something"]) # linting error, 'something' is not a valid key

JSON здесь прост, но, конечно, может быть вложен.

I ' m, используя Python 3.6.

Как мне использовать набор текста?

1 Ответ

0 голосов
/ 26 мая 2020

Вы можете рассмотреть возможность использования библиотеки для сериализации и десериализации. т.е. кодировщики и декодеры из собственной библиотеки python 3.x std https://docs.python.org/3/library/json.html

Аналогичный вопрос был задан для python: Какая альтернатива Джексону в python?

Это чаще встречается в типизированных языках (Java имеет популярный вариант под названием Jackson), поскольку сопоставление клавиш является более сложным требованием , но вы можете сделать это с рядом альтернатив. Основная идея состоит в том, чтобы сопоставить JSON blob-объект с классом и проанализировать его в / на этом объекте (наоборот, для сериализации).

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