Я не знаю, насколько велик ваш фрейм данных, но вы можете перебрать его, обработать каждую строку и сохранить ее в файл JSON. Позвольте мне показать вам следующий пример.
Сначала я импортирую пакеты и создам пример набора данных:
import pandas as pd
import json
df = pd.DataFrame(
[
{'Var1': 23, 'Var2': 25, 'Var3': 10, 'Var4': 5, 'Var5': 2, 'Var6': 1, 'Var7': 0, 'Var8': 10},
{'Var1': 24, 'Var2': 26, 'Var3': 11, 'Var4': 6, 'Var5': 3, 'Var6': 2, 'Var7': 1, 'Var8': 11},
{'Var1': 25, 'Var2': 27, 'Var3': 12, 'Var4': 7, 'Var5': 4, 'Var6': 3, 'Var7': 2, 'Var8': 12},
{'Var1': 26, 'Var2': 28, 'Var3': 13, 'Var4': 8, 'Var5': 5, 'Var6': 4, 'Var7': 3, 'Var8': 13},
]
)
print(df)
Код выдает следующие выходные данные:
Var1 Var2 Var3 Var4 Var5 Var6 Var7 Var8
0 23 25 10 5 2 1 0 10
1 24 26 11 6 3 2 1 11
2 25 27 12 7 4 3 2 12
3 26 28 13 8 5 4 3 13
Теперь я покажу вам основную часть кода:
with open('test_json_file.json', 'w') as file:
for i, row in df.iterrows():
json_to_save = {
"Key1": str(row.Var1),
"Key2": {
"Var2": str(row.Var2),
"Var3": str(row.Var3),
"Var4": str(row.Var4),
"Var5": str(row.Var5)
},
"Key3": {
"Var6": str(row.Var6),
"Var7": str(row.Var7),
"Var8": str(row.Var8)
}
}
file.write(json.dumps(json_to_save) + '\n')
Код создает файл test_json_file.json
и сохраняет json_to_save
json, определенный в цикле for для новой строки в файле, например, дляВ первой строке файла вы найдете этот json: {"Key1": "23", "Key2": {"Var2": "25", "Var3": "10", "Var4": "5", "Var5": "2"}, "Key3": {"Var6": "1", "Var7": "0", "Var8": "10"}}
.
Надеюсь, это поможет.