谁能帮忙,我不知道为什么它总是返回错误
ERROR: Not enough arguments for format string
它是从一个 csv 中读取的,其中的标题被命名为 Property ID、Reference Number 等。唯一的区别是在表列名称中添加了 _。
这是我的引用脚本:
import csv
import pymysql
mydb = pymysql.connect(host='127.0.0.1', user='root', passwd='root', db='jupix', unix_socket="/Applications/MAMP/tmp/mysql/mysql.sock")
cursor = mydb.cursor()
with open("activeproperties.csv") as f:
reader = csv.reader(f)
# next(reader) # skip header
data = []
for row in reader:
cursor.executemany('INSERT INTO ACTIVE_PROPERTIES(Property_ID, Reference_Number,Address_Name,Address_Number,Address_Street,Address_2,Address_3,Address_4,Address_Postcode,Owner_Contact_ID,Owner_Name,Owner_Number_Type_1,Owner_Contact_Number_1,Owner_Number_Type_2,Owner_Contact_Number_2,Owner_Number_Type_3,Owner_Contact_Number_3,Owner_Email_Address,Display_Property_Type,Property_Type,Property_Style,Property_Bedrooms,Property_Bathrooms,Property_Ensuites,Property_Toilets,Property_Reception_Rooms,Property_Kitchens,Floor_Area_Sq_Ft,Acres,Rent,Rent_Frequency,Furnished,Next_Available_Date,Property_Status,Office_Name,Negotiator,Date_Created)''VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)', row)
mydb.commit()
cursor.close()
print"Imported!"
最佳答案
发生错误是因为您尝试向其中插入数据的列有 37 个,但您发送到数据库的输入有 38 个,即 %s
。因此,您告诉游标将一段数据发送到数据库,但游标不知道将数据插入到何处。您可能忘记在 INSERT INTO
语句中包含一列,或者您的语句中有额外的 %s
。
因此您需要删除SQL 语句中的%s
之一,或者在您的数据库中添加一列以将最后一段数据发送到其中。
关于python - 格式字符串mysql错误的参数不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54947346/