Извлечение логического значения из запроса - PullRequest
0 голосов
/ 25 июня 2019

Я получаю логическое значение из запроса в сокол API.

Пример URL:

localhost:8080/api/some-end-point/101?something=true

хочу

----------------------------------
| something     | Something_flag |
----------------------------------
| true          | True           |
----------------------------------
| false         | False          |
----------------------------------
| not provided  | True           |
----------------------------------

Код:

something_flag = req.get_param_as_bool('something') \
        if req.get_param_as_bool('something') else True

Есть ли лучший питонский способ сделать это?

Ответы [ 2 ]

1 голос
/ 25 июня 2019
something_flag = req.get_param_as_bool('something') \
        if req.get_param('something') is not None else True

Или вы можете использовать аргумент по умолчанию

something_flag = req.get_param_as_bool('something', default=True)

Для версии 1.2 нет default, вы можете использовать required.

try:
    something_flag = req.get_param_as_bool('something', required=True)
except HTTPBadRequest:
    something_flag = True
0 голосов
/ 25 июня 2019

Почему не просто:

something_flag = req.get_param_as_bool('something') != False

True != False  # >>> True
False != False  # >>> False
None != False  # >>> True
...