str(None)
не None
, а "None"
. Так что без этой бесполезной и вредной строковой классификации:
foo = "soner test " \
f"{str(obj['my_str_index']) if obj['my_str_index'] is not None else 'null'}"
РЕДАКТИРОВАНИЕ: более разборчивый способ (обратите внимание, что интерполяция в f-строке автоматически приводит к строковому форматированию, поэтому нам вообще не нужно str
):
index = obj['my_str_index']
if index is None:
index = "none"
foo = f"soner test {index}"
РЕДАКТИРОВАТЬ: Другой способ, с моржом (ограничено до 3,8 +):
foo = f"soner test {'null' if (index := obj['my_str_index']) is None else index}"