def getValue(d, key):
for k, v in d.iteritems():
print "{0} == {1}".format(k, key)
if k == key:
return v
elif isinstance(v, dict):
getValue(v, key)
logging.error("Cannot find key in dictionary")
return ""
#d = getting the dictionary
getValue(d, "error_frames")
Из инструкции печати, которую я вставлял в функцию, я ясно вижу, что в консоли отображаются «error_frames == error_frames», но оператор if не выполняется. Зачем? Словарь строится путем разбора xml с модулем xmltodict.Почему эти строки не равны? (Python)
Попробуйте напечатать 'repr (k)' и 'repr (key)' вместо использования 'str.format'. –