繁体   English   中英

Python:插入 MySQL 时出现“参数不足”错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM