-1

我正在尝试将从 Yahoo Finance 下载的股票市场 csv 数据插入名为“TEST”的 mysql 表中,该表位于名为“stocks”的数据库中,但我从 python 收到错误代码:

内部错误:(1292,“不正确的日期值:'日期列'日期在第 1 行”)

我试图插入的数据有数百行看起来像这样:

1995-03-31,0.141150,0.141150,0.141150,0.141150,0.105375,10000

我试图将此数据插入的表包含以下列:

date DATE NOT NULL PRIMARY KEY,
open DECIMAL(10,6),
high DECIMAL(10,6),
low DECIMAL(10,6),
close DECIMAL(10,6),
adj_close DECIMAL(10,6),
volume INT,

这是我用来将数据插入表中的python代码

with open('/home/matt/Desktop/python_projects/csv_files/CH8_SG.csv', 
'r') as f:
     reader = csv.reader(f)
     data = next(reader)
     query = 'insert into TEST values (%s,%s,%s,%s,%s, %s, %s)'
     query = query.format(','.split('%s' * len(data)))
     cursor = connection.cursor()
     cursor.execute(query, data)
     for data in reader:
        cursor.execute(query, data)
     cursor.commit()

当我运行上图所示的代码时,出现以下错误

内部错误:(1292,“不正确的日期值:'日期列'日期在第 1 行”)

我真的认为我很接近,但我不知道这个错误是怎么回事。谁能帮我?

4

1 回答 1

-1

在 Python 中编写插入日期时间的查询时,应在 MySQL 中使用转换操作。在您的情况下: query = '插入 TEST 值 (%s,%s,%s,%s,%s, %s, %s)' => '插入 TEST 值 (STR_TO_DATE(%s),%s ,%s,%s,%s, %s, %s)' 并确保“日期”字段中没有重复项。

于 2018-02-08T13:20:55.240 回答