Я пытаюсь написать код, который открывает около 900 вложенных словарей с примерно 99% похожим содержимым (очень большим) и сохраняет значение каждого ключа в списке, названном в честь ключа. Например, если бы у меня было два словаря: {data=37} {data=74}
, я бы хотел объединить эти два значения в список с именем data
, который выводит следующее [37,74]
Вот код, который я сейчас использую для donei sh this:
import pandas as pd
df = pd.read_csv("/Users/---.csv")
i=True
def sort(d):
for k, v in d.items():
if isinstance(v, dict):
sort(v)
else:
global i
if i==True:
print("{0} : {1}".format(k, v))
setattr(sys.modules[__name__], k, [v])
i=False
else:
print("{0} : {1}".format(k, v))
globals()["{}".format(k)].append(v)
for i in df['file_num']:
with open("/Users/--/allDAFs{}.json".format(i)) as f:
data=json.load(f)
sort(data)
Проблема состоит в двух аспектах: a. Есть дубликаты, и я не знаю почему. При наличии всего 900 файлов для некоторого ключа существует 1400 значений. б. Я не могу связать их с file_num. Как видите, я сортирую их, используя file_num, и я хотел бы связать каждое значение с file_num, откуда оно взято.
Я знаю, что, возможно, я делаю это не лучшим образом, поэтому любое понимание или совет был бы очень признателен.
РЕДАКТИРОВАТЬ: Вот как мне нужно, чтобы конечный результат выглядел, предпочтительно в pandas DataFrame:
введите описание изображения здесь