Как добавить значения в класс данных Python?

Допустим, у меня есть класс данных python:

@dataclass
class Person:
    name: str
    age: int  
    married: bool

И добавляю данные в поля скажем из воображаемого словаря:

for row in something:
    ob = Person(
        name=row.name,
        age=row.age,
        married=row.married,
     )

Как мне, например, сделать name равным None или пустой строке, если name не задано в воображаемом словаре?

Я пробовал что-то вроде:

name = row.name if row.name else None

но я получил ошибку атрибута, например: AttributeError: object has no attribute 'name'

Изменить: я хочу добиться этого без обязательной установки полей в классе данных Person на None


person PercySherlock    schedule 10.05.2021    source источник
comment
Если бы это был воображаемый словарь, вы бы использовали row['name'], а если бы этого ключа не существовало, вы бы использовали row.get('name') для получения желаемого эффекта. Для любого случайного объекта эквивалент getattr(row, 'name', None).   -  person deceze♦    schedule 10.05.2021
comment
Ошибка атрибута - настоящая проблема. Какой здесь тип row? Если это словарь, вы можете попробовать name = row['name'] if 'name' in row else None   -  person h0r53    schedule 10.05.2021
comment
@ h0r53 row.get('name') уже инкапсулирует этот шаблон.   -  person deceze♦    schedule 10.05.2021
comment
@deceze Я решил это с помощью getattr(row, 'name', None). Спасибо!   -  person PercySherlock    schedule 10.05.2021
comment
@h0r53 @Rivers row — это namedTuple.   -  person PercySherlock    schedule 10.05.2021