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

enxuqcxy  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(493)

我有以下代码将csv导入mysql数据库:

import csv
import mysql.connector
import re

change = "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) 但它不起作用

brgchamk

brgchamk1#

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

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

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

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

如果您真的想使用变量,可以执行以下操作:

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

或:

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

相关问题