Во-первых, вы должны использовать dict-понимание, чтобы очистить эту строку, и я бы создал вспомогательную функцию и понизил ее при попытке / исключении:
def try_lower(x):
try:
return x.lower()
except AttributeError:
return x
def lower_dict(d):
return {try_lower(k): try_lower(v) for k, v in d.items()}
В качестве альтернативы используйте hasattr
для помощника. функция.