Проблемы с импортом данных CSV в (ошибка анализа DictReader)Python

Программы на Python
Ответить
Anonymous
 Проблемы с импортом данных CSV в (ошибка анализа DictReader)

Сообщение Anonymous »

Я работаю над проектом Django, где мне нужно импортировать вопросы из CSV-файла в мою базу данных с помощью специальной команды управления. Однако у меня возникла проблема с анализом строк CSV.
Действия, которые я пробовал:
Я использую csv.DictReader для чтения CSV-файл.
Мой CSV-файл включает такие столбцы, как «тема», «тема», «сложность_уровень», «текст», «параметры», «корректный_вариант» и «изображение».
Вот образец моего CSV-файла:

Код: Выделить всё

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",""
Вот проблема, с которой я столкнулся:
Когда я запускаю команду управления, DictReader, похоже, неправильно анализирует строки. Я получаю такие ошибки, как:

Код: Выделить всё

Error importing question: Unknown - 'subject'
Отладка показывает, что вся строка считывается как одна пара ключ-значение, а не разбивается на отдельные поля.
I пробовал:
Убедиться, что CSV-файл имеет кодировку UTF-8.
Добавить отладку для подтверждения необработанного содержимого CSV.
Вот мой текущий фрагмент кода для чтения CSV:

Код: Выделить всё

with open(csv_file, newline='', encoding='utf-8-sig') as file:
reader = csv.DictReader(file)
for row in reader:
print("Parsed Row:", row)  # Debugging
Что может заставить DictReader рассматривать всю строку как одну пару ключ-значение? Как правильно разобрать CSV-файл на такие поля, как тема, тема и т. д.?


Подробнее здесь: https://stackoverflow.com/questions/793 ... sing-error
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»