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 = "*"
Вернуться на верх