Как с помощью glom объединить необязательные строки?

У меня есть словарь, содержащий имя из двух частей:

target = {
    "givenName": "Elvis",
    "middleName": "Aron",
}

middleNameне является обязательным. Мне нужно сопоставить им одну строку, которая либоgivenName + ' ' + middleName если middleName определяется или просто firstName. Каков канонический способ сделать это с помощьюglom?

1 ответ

Решение, которое я нашел до сих пор, - использовать lambda а также Coalesce. Приведенное ниже решение будет работать, еслиmiddleName входит или нет:

    glom(target, Coalesce(
            lambda t: t["givenName"] + " " + t["middleName"],
            "givenName",
            skip_exc=KeyError),
    )
Другие вопросы по тегам