Я новичок в Python, и я пытаюсь превратить несколько файлов csv, извлеченных из реляционной базы данных, в документ Json.
Я нашел код, который превращает одиночный csv в json-документ, но я хочу сохранить отношения в csv-файлах и структурировать мой Json-документ в соответствии с этим
import csv
import json
input_file = 'Test3.csv'
output_file_template = 'Test.json'
with open(input_file, 'r', encoding='utf8') as csvfile:
reader = csv.DictReader(csvfile, delimiter=',')
rows = list(reader)
for i in range(len(rows)):
out = json.dumps(rows[1*i:1*(i+1)])
with open(output_file_template.format(i), 'w') as f:
f.write(out)
CSV1 - Сведения о студенте
Studentid, Studentname, dob
001, Mark Johns, 21/04/2010
002, Jenny King, 20/01/2009
003, Steve Brown, 02/09/2010
CSV2- модули
Moduleid, Modulename
01, Maths
02, Science
03, Art
04, Geometry
CSV3 - сведения о классе
classid, classname
01, Goldfish room
02, Hawkins room
CSV4 - подробности расписания
moduleid1, classid, studentid
01, 01, 003
01, 01, 002
02, 02, 001
Я хочу записать в документ json в структуре ниже:
"timetable details"
"header":{ "moduleid":, "locationid" },
"body": { "moduleid",
"Modules":{
"moduleid":,
"modulename":
},
"classid":,
"class details":{
"classid":,
"classname":
},
"studentid",
"studentdetails":{
"studentid":,
"studnetname":,
"dob":
}
}
Вы пытались использовать модуль csv для их чтения и создания словаря, а затем выгружать его как файл json ?. Вот и все
@Arockia, спасибо. Как я могу создать этот словарь, взяв всю информацию о кусках, используя fk в файлах csv, пожалуйста?






Используйте Читатель CSV для синтаксического анализа файлов CSV в объекты Python, из этих объектов создайте объект с желаемым форматом, как в вашем примере, затем используйте Дамп JSON для создания строки в формате JSON, которую вы можете записать в файл
благодарю вас! Я думаю, что ключевым моментом здесь будет создание объекта при извлечении соответствующих полей из каждого файла. Не могли бы вы направить меня к подходящему ресурсу для этого?
какие ваши усилия? Ты это пробовал? если да, то как?