Я пытаюсь импортировать данные из файлов Excel .xlsx в базы данных .db, которые я создал с помощью sqlite3 и openpyxl, в Spyder. Мне разрешено использовать Панду при необходимости. Это для назначения, поэтому я не могу использовать возможные «более эффективные» методы, кроме тех, которые я упоминал выше. Моя проблема с фактическим импортом данных Excel в базы данных. Я настроил таблицы и заголовки столбцов, используя простые подсказки командной строки (CMD) в качестве крайней меры, но мне нужно показать код при отправке. Ниже мой код для этого, используя Spyder. (Я сохранил этот файл в правильной папке, в которой находятся файлы Excel и файл .db)
import sqlite3
import openpyxl
connection = sqlite3.connect('createdb_food.db')
cursor = connection.cursor()
wb1 = openpyxl.load_workbook('inspections.xlsx')
wb2 = openpyxl.load_workbook('violations.xlsx')
(затем я пишу sql_commands и выполняю для создания таблиц << works) (сейчас я пытаюсь импортироватьданные в соответствующие файлы ... Я покажу код для VIOLATIONS.xslx один, как меньше кода ... но оба импорта Excel одинаковы с разными переменными) </p>
sheet2 = wb2['violations']
values2 = []
for row in sheet2.iter_rows(min_row=2, max_row=906015, max_col=5):
for cell in row:
if len(values2) == 5:
sql_command = """
INSERT INTO violations(points, serial_number, violation_code, violation_description, violation_status)
VALUES(values2[0], values2[1], values2[2], values2[3], values2[4]
);"""
cursor.execute(sql_command)
values2 = []
values2.append(cell.value)
[(ПРОВЕРИТЬРЕДАКТИРОВАТЬ НИЖЕ)] для изменения кода выше ^
Затем я сохраняю и фиксирую изменения и закрываю соединение.
connection.commit()
connection.close()
Я использую utf-8. Текущая ошибка в Spyder гласит: «self.ws._cells [(cell ['row'], cell ['column'])] = c || MemoryError".
Я был бы очень признателен за любую помощь. Спасибо!
[(РЕДАКТИРОВАТЬ)] : я изменил код на следующий ...
sheet2 = wb2['violations']
values2 = []
wb2_row_count = sheet2.max_row
wb2_col_count = sheet2.max_column
for row in sheet2.iter_rows(min_row=2, max_row=906015, max_col=5):
if len(values2) == 5:
sql_command = """
INSERT INTO violations(?,?,?,?,?
);"""
cursor.execute(sql_command)
values2 = []
for cell in row:
values2.append(cell.value)
cursor.execute(values2)
СООБЩЕНИЕ ОБ ОШИБКЕ:
Файл "C: \ Users [имя] \ Anaconda3 \ lib \ site-packages \ openpyxl \ worksheet_reader.py", строка 139, в синтаксическом разборе для _, элемент в нем:
MemoryError