[英]mysql.connector.errors.ProgrammingError: Wrong number of arguments during string formatting
I'm opening a text file and trying to write it to an SQL database. 我正在打开一个文本文件,并尝试将其写入SQL数据库。
import mysql.connector
import sys
import mysql
f = open('norepeats.txt', 'r')
def sniffertodatabase(f):
for line in f:
linestrip = line.strip()
IP = linestrip
cnx = mysql.connector.connect(user='', password='', host='localhost', database='snifferdb')
cur = cnx.cursor()
#print IP
insert_stmt = (
"INSERT INTO SNIFFERDBIPs (IP)"
"VALUES (%s)"
)
data = ('IP')
cur.execute(insert_stmt, data)
#cur.execute("INSERT INTO SNIFFERDBIPs (IP)" "VALUES (%s), (IP)")
#cur.execute("INSERT INTO test (num, data) VALUES (%s, %s)", (42, 'bar'))
cnx.commit()
cnx.close()
sniffertodatabase(f)
and the error I'm getting is: 我得到的错误是:
Traceback (most recent call last):
File "snifferdatabase.py", line 26, in <module>
sniffertodatabase(f)
File "snifferdatabase.py", line 19, in sniffertodatabase
cur.execute(insert_stmt, data)
File "build/bdist.linux-x86_64/egg/mysql/connector/cursor.py", line 480, in execute
mysql.connector.errors.ProgrammingError: Wrong number of arguments during string formatting
How do I solve this error? 我该如何解决这个错误?
You have data=('IP')
. 你有
data=('IP')
。 Even though you put it in brackets it is not treated as a tuple. 即使将其放在方括号中,也不会将其视为元组。 See this:
看到这个:
>>> type(('IP'))
<type 'str'>
>>> type(('IP',))
<type 'tuple'>
>>>
So you need to change your data=('IP')
to data=('IP',)
因此,您需要将
data=('IP')
更改为data=('IP',)
您也可以使用列表而不是元组
data = ['IP']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.