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

我有这个代码将我的 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)但它不起作用


侃侃无极
浏览 156回答 1
1回答

MMTTMM

对于这种非常特殊的情况,您只需对查询中的值进行硬编码: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:])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python