Python (Django) как присвоить значение по умолчанию в случае ошибки
Здравствуйте, я использую django в проекте, используя метод POST, представление в Django получает данные, оно работает нормально, если данные получены, но если данные не получены, я хочу присвоить значение по умолчанию вместо того, чтобы получить ошибку, вот мой код. Я пытался использовать присваивание if, но это не работает.
@api_view(['POST'])
def getPacsPatients(request):
data = json.loads(request.body.decode('utf-8'))
if request.method == 'POST':
PatientName = data["patientName"] if data["patientName"] else "*"
#it works fine if data["patientName"] is present, but if not I get an error
Вы можете читать значения из словаря с помощью функции get()
.
data.get(key, default_value)
@brukidm дает правильный ответ, однако, поскольку ваш вопрос подразумевает, что вы, возможно, новичок в Python, я хотел бы также отметить, что в подобных сценариях вы можете try-except
обойти код, что соответствует подходу Python EAFP.
В результате получится примерно следующее:
@api_view(['POST'])
def getPacsPatients(request):
data = json.loads(request.body.decode('utf-8'))
if request.method == 'POST':
try:
PatientName = data["patientName"]
except KeyError:
PatientName = default_value
Он выполняет код в блоке try
и, если натыкается на KeyError
, выполняет блок except
.
Попробуйте это,
try data["patientName"] :
PatientName = data["patientName"]
except Exception as E:
PatientName = "*"