Мне нужно систематически обращаться к словарям, которые вложены в список в словаре на 3-м уровне, например:
responses = {'1': {'responses': [{1st dict to be retrieved}, {2nd dict to be retrieved}, ...]},
'2': {'responses': [{1st dict to be retrieved}, {2nd dict to be retrieved}, ...]}, ...}
Мне нужно развернуть и преобразовать эти вложенные файлы в кадры данных, поэтому конецрезультат должен выглядеть следующим образом:
responses = {'1': df1,
'2': df2, ...}
Чтобы добиться этого, я построил цикл for, чтобы пройти через все ключи на первом уровне.В этом цикле я использую другой цикл для извлечения каждого элемента из вложенных диктов в новый пустой список с именем responses_df
:
responses_dict = {}
for key in responses.keys():
for item in responses[key]['responses']:
responses_dict[key].update(item)
Однако я получаю:
KeyError: '1'
Внутренний цикл работает, если я использую его индивидуально для ключа внутри dict, но это не очень помогает мне, так как данные поступают из API и должны обновляться динамически каждые несколько минут в процессе работы.
Цикл nex для преобразования результата в кадры данных будет выглядеть следующим образом:
for key in responses_dict:
responses_df[key] = pd.DataFrame.from_dict(responses_dict[key], orient='index')
Но я так и не попробовал это, так как первая операция не удалась.