简体   繁体   English

mysql.connector.errors.ProgrammingError:字符串格式化期间参数数量错误

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

相关问题 ProgrammingError:字符串格式化过程中的参数数量错误 - ProgrammingError: Wrong number of arguments during string formatting mysql.connector.errors.ProgrammingError: 1064 (42000) - mysql.connector.errors.ProgrammingError: 1064 (42000) mysql.connector.errors.ProgrammingError:1064 - mysql.connector.errors.ProgrammingError: 1064 mysql.connector.errors.ProgrammingError: Cursor 未连接 - mysql.connector.errors.ProgrammingError: Cursor is not connected 编程错误:字符串格式化期间的参数数量错误,尝试过元组修复 - ProgrammingError: Wrong number of arguments during string formatting, tried tuple fix mysql.connector.errors.ProgrammingError:SQL语法错误 - mysql.connector.errors.ProgrammingError: Error in SQL Syntax mysql.connector.errors.ProgrammingError:1064(42000)和XML解析 - mysql.connector.errors.ProgrammingError: 1064 (42000) & XML parsing mysql.connector.errors.ProgrammingError:SQL 语句的参数不足 - mysql.connector.errors.ProgrammingError: Not enough parameters for the SQL statement Angular,Flask,mysql.connector编程错误:参数数量错误 - Angular, Flask, mysql.connector ProgrammingError: Wrong number of arguments raise ProgrammingError( mysql.connector.errors.ProgrammingError: SQL 语句中没有使用所有参数 - raise ProgrammingError( mysql.connector.errors.ProgrammingError: Not all parameters were used in the SQL statement
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM