为了账号安全,请及时绑定邮箱和手机立即绑定

将 csv 导入 mysql 时是否可以将 %s 更改为变量?

将 csv 导入 mysql 时是否可以将 %s 更改为变量?

侃侃无极 2021-08-17 15:50:23
我有这个代码将我的 csv 导入到 mysql 数据库:import csvimport mysql.connectorimport rechange = "hello"  mydb = mysql.connector.connect(user='root', password='',                          host='localhost',                          database='jeremy_db')file = open('C:\\Users\\trendMICRO\\Desktop\\OJT\\test.csv', 'rb')  csv_data = csv.reader(file)mycursor = mydb.cursor()cursor = mydb.cursor()for row in csv_data:    cursor.execute('INSERT INTO table_test(col1,col2,col3,col4)' 'VALUES(%s, %s, %s, %s)',row)mydb.commit()cursor.close()print("Done")我可以将 %s 的值更改为我的变量change = "hello"吗?请帮助我,我是 python 新手,我尝试了所有解决方案,但找不到如何更改值。我试过这个,VALUES(hello, %s, %s, %s)',row)但它不起作用
查看完整描述

1 回答

?
MMTTMM

TA贡献1869条经验 获得超4个赞

对于这种非常特殊的情况,您只需对查询中的值进行硬编码:

cursor.execute('INSERT INTO ... VALUES ("hello", %s, %s, %s)', row)

现在您的查询中只有三个占位符,因此您需要确保这row是一个包含三个项目的列表。例如:

cursor.execute('INSERT INTO ... VALUES ("hello", %s, %s, %s)', row[1:])

如果你真的想使用一个变量,你可以这样做:

row[0] = changecursor.execute('INSERT INTO ... VALUES (%s, %s, %s, %s)', row)

要么:

cursor.execute('INSERT INTO ... VALUES (%s, %s, %s, %s)', [change] + row[1:])


查看完整回答
反对 回复 2021-08-17
  • 1 回答
  • 0 关注
  • 155 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号