我正在加载一个 .csv
文件到mysql表中(test1有2个int列),使用 MySqlOperator
,但在插入查询时出现语法错误,下面是我正在尝试的代码
for filename in os.listdir(path):
if str(filename).endswith('.csv'):
csv_data = csv.reader(file(filename))
for row in csv_data:
sql1=("""insert into test1 values (%s,%s)""",row)
mysql_op = MySqlOperator(task_id='testop',
sql=sql1,
mysql_conn_id='hack5_id', owner='hack5',dag=dag)
mysql_op.run(start_date=datetime.now(), end_date=datetime(2018, 5, 21))
错误:
_mysql_exceptions.ProgrammingError: (1064, "You have an error in your SQL
syntax; check the manual that corresponds to your MySQL server version for
the right syntax to use near '%s,%s)' at line 1")
请帮我解决这个问题。
2条答案
按热度按时间lhcgjxsq1#
尝试运行以下命令:
pbgvytdp2#
谢谢,@kaxil,我在上面试过了,你的代码和我的代码都给出了相同的错误,实际上它构建的查询是这样的
填充列表,我们可以看到错误的插入语法。所以我修改了insert语句如下
正在将查询生成为
插入无误。