Заранее спасибо за ответ на мой вопрос.
Я пытаюсь создать таблицу, прочитать файл CSV, а затем сохранить данные из файла в созданную таблицу. Я продолжаю получать эту ошибку, которую я не знаю, как решить. Я просматривал другие сообщения, но ни одна из них не отвечала на мою проблему.
Файл CSV содержит два столбца и более 3000 строк. Имя первого столбца - #timestamp, а второго столбца - Vehicle1. Вот мой код
import csv
import MySQLdb
mydb = MySQLdb.connect(
host = "localhost",
user = "root",
password = "1111",
database = "LOAD_PROFILES"
)
mycursor = mydb.cursor()
mycursor.execute("DROP TABLE IF EXISTS Household1")
mycursor.execute("SHOW DATABASES;")
for db in mycursor:
print(db)
sql = " CREATE TABLE Household1(sx TIMESTAMP NOT NULL, Vehicle1 INT NOT NULL, id INT NOT NULL AUTO_INCREMENT PRIMARY KEY) AUTO_INCREMENT = 1"
mycursor.execute("SHOW TABLES")
mycursor.execute(sql)
fname=input('file name: ')
if len(fname) < 1 : fname="converted0.csv"
with open(fname) as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')
for row in csv_reader:
print(row)
res = row[0].split()
TIMESTAMP = row[0]
Vehicle1 =row[1]
data = mycursor.execute('''INSERT INTO Household1 VALUES (%s, %s)''',row)
mycursor.execute("select * from Household1")
row = mycursor.fetchall()
mycursor.execute("select * from Household1")
f = mycursor.fetchall()
print(f)
mydb.commit()
Вот ошибка, которую я получаю:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 238, in execute
query = query % args
TypeError: not all arguments converted during string formatting
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "MySQL_python_Tables.py", line 49, in <module>
data = mycursor.execute('''INSERT INTO Household1 VALUES (%%s, %%s)''',row)
File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 240, in execute
self.errorhandler(self, ProgrammingError, str(m))
File "/usr/lib/python3/dist-packages/MySQLdb/connections.py", line 52, in defaulterrorhandler
raise errorclass(errorvalue)
_mysql_exceptions.ProgrammingError: not all arguments converted during string formatting
Любая помощь будет оценена. Спасибо
РЕДАКТИРОВАТЬ:
Оказывается, моя таблица имеет три столбца (последний столбец id), но мой CSV-файл имеет только два столбца. Как только я удалил столбец id, все заработало.
Теперь у меня есть еще одна проблема, python перебирает мой файл, пока не дойдет до "2010-03-14 02:00:00" и выдает эту ошибку:
1292, "Incorrect datetime value: '2010-03-14 02:00:00' for column 'sx' at row 1"
Я просмотрел много постов, и большинство из них говорят, что это связано с DST. Как я могу преодолеть это?
Спасибо