Как деструктурировать переменные в Python как в React? - PullRequest
0 голосов
/ 10 марта 2020

Я работаю над созданием API с использованием Flask. Для каждого запроса я должен проверять request.args или request. json и выдавать ошибку, если params или body request имеет неожиданную форму или другой тип данных или Нет .

А затем вытащите несколько элементов из тела запроса или параметры запроса . Существует много таких API , где мне нужно извлечь несколько элементов из параметров запроса или тела запроса и выполнить функции базы данных с такими значениями, как выполнение SQL запрос и передача данных из тела запроса или параметров запроса .

Каждый раз в API функция просмотра, Я должен сделать request.args.get или request. json .get для ряда переменных.

Я просто думаю, есть ли лучший способ сделать элементы доступными в памяти без явного извлечения каждого из них из словаря (что-то вроде деструктуризации в React ).

Я искал и обнаружил, что действительно есть способ сделать то, что не является предпочтительным. { ссылка }

Я просто хотел узнать, есть ли лучший способ сделать это.

1 Ответ

0 голосов
/ 10 марта 2020

Существует operator.itemgetter, который позволяет вам извлекать несколько элементов одновременно. (Семантически он по-прежнему извлекает каждое значение из dict; хотя синтаксически это одна операция.)

from operator import itemgetter

keys = ['a', 'b']
d1 = {'a': 1, 'b': 2, 'c': 3}

get_a_and_b = itemgetter(*keys)  # equivalent to lambda d: (d['a'], d['b'])

values = get_a_and_b(d)  # KeyError if either a or b is missing, otherwise returns (1, 2)

d2 = dict(zip(keys, values))  # Build new "subdict" if desired.
...