По сути, моя задача - извлечь информацию сначала из файла JSON, а затем из файла .list. Затем эта информация в чередующейся последовательности будет выгружена в новый файл JSON с именем summary.json
.
. На данный момент мой подход заключается в извлечении всех данных json в один список, а затем в данные списка. в другой список. Оттуда я добавляю эту информацию все по 1 индексу за раз в новый комбинированный список, который должен быть выгружен.
# append json_data to list1
json_data = []
for i in json_files:
with open(i) as f:
json_data.append(json.load(f))
# append table_data to list2
table_data = []
for i in table_files:
with open(i) as f:
for line in f:
table_data.append(line)
#format data to remove \n characters
table_data = [sub.replace('\n', '') for sub in table_data]
#combine list info
combined = []
while True:
try:
combined.append(json_data.pop(0))
combined.append(table_data.pop(0))
except IndexError:
break
# dump list info to new json file
with open('summary.json', 'w') as f:
json.dump(combined, f, indent=2)
Вот вывод с моим текущим кодом:
[
{
"json_object1_item1": "value1",
"json_object1_item2": "value2",
"json_object1_item3": "value3"
},
tablelist1_item1,
{
"json_object2_item1": "value1",
"json_object2_item2": "value2",
"json_object2_item3": "value3"
}
tablelist1_item2
]
Желаемый вывод выглядит примерно так:
[
{
"json_object1_item1": "value1",
"json_object1_item2": "value2",
"json_object1_item3": "value3"
},
tablelist1_item1,
tablelist1_item2,
tablelist1_item3,
{
"json_object2_item1": "value1",
"json_object2_item2": "value2",
"json_object2_item3": "value3"
}
tablelist2_item1,
tablelist2_item2,
tablelist2_item3
]
Как я могу исправить свой код, чтобы получить то, что мне нужно? Есть ли лучший подход к достижению моего результата? Спасибо