Probleme beim Importieren von CSV-Daten in (DictReader-Analysefehler)Python

Python-Programme
Guest
 Probleme beim Importieren von CSV-Daten in (DictReader-Analysefehler)

Post by Guest »

Ich arbeite an einem Django-Projekt, bei dem ich mithilfe eines benutzerdefinierten Verwaltungsbefehls Fragen aus einer CSV-Datei in meine Datenbank importieren muss. Ich habe jedoch ein Problem beim Parsen der CSV-Zeilen.
Schritte, die ich versucht habe:
Ich verwende csv.DictReader, um die zu lesen CSV-Datei.
Meine CSV-Datei enthält Spalten wie Betreff, Thema, Schwierigkeitsgrad, Text, Optionen, korrekte_Option und Bild.
Hier ist ein Beispiel meiner CSV:

Code: Select all

subject,topic,difficulty_level,text,options,correct_option,image
Physics,Thermodynamics,2,"Calculate \( W = P \cdot \Delta V \) for \( P = 100 \, kPa \).","{""A"":""100 J"",""B"":""200 J"",""C"":""300 J"",""D"":""400 J""}","A","question_images/thermo_diagram.png"
Math,Calculus,3,"Evaluate \( \int_0^1 x^2 dx \).","{""A"":""1/2"",""B"":""1/3"",""C"":""1/4"",""D"":""1/5""}","B",""
Hier ist das Problem, auf das ich stoße:
Wenn ich meinen Verwaltungsbefehl ausführe, scheint DictReader die Zeilen nicht richtig zu analysieren. Ich erhalte Fehlermeldungen wie:

Code: Select all

Error importing question: Unknown - 'subject'
Das Debuggen zeigt, dass die gesamte Zeile als einzelnes Schlüssel-Wert-Paar gelesen wird und nicht in einzelne Felder aufgeteilt wird.
I Habe versucht:
Sicherstellen, dass die CSV-Datei UTF-8-kodiert ist.
Debugging hinzugefügt, um den Rohinhalt der CSV zu bestätigen.
Hier ist meine Aktueller Codeausschnitt zum Lesen der CSV:

Code: Select all

with open(csv_file, newline='', encoding='utf-8-sig') as file:
reader = csv.DictReader(file)
for row in reader:
print("Parsed Row:", row)  # Debugging
Was könnte dazu führen, dass DictReader die gesamte Zeile als ein Schlüssel-Wert-Paar behandelt? Wie kann ich die CSV-Datei ordnungsgemäß in Felder wie Betreff, Thema usw. analysieren?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post