#python #django #try-except
#python #django #try-except
Вопрос:
У меня есть API, который является POST
У этого API много необязательных параметров, поэтому, очевидно, мой код будет примерно таким:
input_data = request.data
try:
optional_parameter_1 = input['parameter_1']
except:
**do sth
.............................................
try:
optional_parameter_2 = input['parameter_1']
except:
optional_parameter_2 = something
................................................
В моем коде их много, и я думаю, что я злоупотребляю try
и except
слишком много.
Интересно, есть ли какой-либо альтернативный способ, который является коротким, простым и чистым, а затем использует try
и except
Комментарии:
1. Предполагая, что это словарь, вы пробовали использовать
.get
вместо этого? Это позволяет вам указать значение по умолчанию. Также вы никогда не должны использовать bareexcept:
, в этом случаеexcept KeyError:
, вероятно, будет уместно.
Ответ №1:
Развивая комментарий @jonrsharpe, вы можете сделать
input_data = request.data
optional_parameter_1 = input_data.get('parameter_1','default_1_val')
optional_parameter_2 = input_data.get('parameter_2','default_2_val')
Комментарии:
1. Можем ли мы сделать это в случае POST, когда
body
json
был отправлен, потому что, похоже, это имеет местоGET
2. Вы можете использовать request.get_json(), если используете Flask.