Как избежать злоупотребления TRY, ЗА ИСКЛЮЧЕНИЕМ случаев, когда запрашиваются параметры проверки API?

#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 вместо этого? Это позволяет вам указать значение по умолчанию. Также вы никогда не должны использовать bare except: , в этом случае 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.