Вы можете обобщить свой код, выделив пару ключей для определенного типа. Там вы можете иметь один l oop с одним оператором try
, который вмещает все ваши пары ключ / тип.
def cast_values(values):
type_map = {
'Price': float,
'Pages': int,
'Quantity': int,
'Discount': int,
}
for key, type_ in type_map.items():
type_ = types.get(key, int)
try:
values[key] = type_(values[key])
except KeyError:
pass
В этом случае я бы, вероятно, избавился от оператора try
в целом и просто проверьте , если ключ находится в values
:
for key, type_ in type_map.items():
if key not in values:
continue
values[key] = type_(values[key])