У меня есть объект JSON, что:Вложенные словари, возврата определенных клавиш в Python
zt123
zt3653
zt777 ..etc.
Я пробовал следующее, но думаю, что я слишком усложняю это. Есть ли упрощенный способ?
def extract(dict_in, dict_out):
for key, value in dict_in.iteritems():
if isinstance(value, dict): # If value itself is dictionary
extract(value, dict_out)
elif isinstance(value, unicode):
# Write to dict_out
dict_out[key] = value
return dict_out
использования прямо 'res = []' в качестве значения по умолчанию вместо тестирования для 'None'. И замените 'type (val) == dict' на пифоновский путь, который Марк Бабатунде связал:' isinstance (val, dict) '. – Chickenmarkus
@Chickenmarkus с 'res = []', мы используем изменяемые типы как необязательный параметр, который может привести к неожиданному поведению позже, когда код растет (это случалось со мной пару раз). – Kamehameha
Ага, это явление называется «изменчивыми аргументами по умолчанию». Я боролся с ним только один раз с более сложным типом, чем список. https://pythonconquerstheuniverse.wordpress.com/2012/02/15/mutable-default-arguments/ – Chickenmarkus