[英]Python : "Not enough arguments" error when insert into MySQL
我正在尝试将多个.csv 文件插入现有的 MySQL 数据库。
这是我的代码:
import pandas as pd
import os
import glob
import csv
import MySQLdb
source = "D:\x\x\wetransfer"
dest = 'D:\x\x\wetransfercsv'
os.chdir(dest)
#insert les csv dans la bdd
mydb = MySQLdb.connect(host='localhost',
user='root',
passwd='',
db='oalley')
cursor = mydb.cursor()
for file in glob.glob("*.csv"):
data = pd.read_csv(file)
df = pd.DataFrame(data)
print(df)
for row in csv.reader(file):
cursor.execute("INSERT INTO entreprise (siren, siret, denomination, enseigne1etablissement, datecreationetablissement, trancheeffectifsetablissement, adresseetablissement, codepostaletablissement, activiteprincipaleetablissement, denominationunitelegale, nombreetablissementunitelegale, caunitelegale, dateclotureexercice, phone, website, representants, coordonnees)"
"VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
row)
mydb.commit()
cursor.close()
问题是,当我执行代码时,出现此错误: MySQLdb._exceptions.ProgrammingError: not enough arguments for format string
我算对了,我有相同数量的 '%s' 和列,所以我不知道为什么会弹出这个错误。
提前感谢您的帮助,我开始疯狂 go,我找不到任何东西哈哈
你的代码是这样的:
cursor.execute("INSERT..."
"VALUES...",
row)
这看起来很奇怪。 您的 SQL 语句中有两行作为单独的字符串。 execute()
期望第二个参数是一个列表,而不是第二个字符串。
尝试像这样格式化多行字符串:
cursor.execute("""INSERT...
VALUES...""",
row)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.