Skip to main content
 首页 » 编程设计

python之值错误 : operation parameter must be str or unicode

2025年05月04日10zfyouxi

我正在尝试使用 python 将一些数据库字段插入到 SQLite 数据库中。我不断收到以下错误:

ValueError: operation parameter must be str 

下面是我的代码。

import sqlite3 
 
conn = sqlite3.connect("pass.db") 
c = conn.cursor() 
 
#Create table password 
table_create_statement = "create table if not exists password(id integer primary key, site text, pass text);" 
c.execute(table_create_statement) 
 
 
#Promt user to input entry 
sites = str(raw_input("Enter name of the sites: ")) 
password = str(raw_input("Enter password: ")) 
 
#SQL statement to insert the new entry 
sql_statement = "insert into password values(?, ?, ?);",(None, sites, password) 
c.execute((sql_statement)) 
connection.commit() 
print("Password entered successfully")    

输出:

Enter name of the sites: www.google.com 
Enter password: abcd 
Traceback (most recent call last): 
  File "pw.py", line 39, in <module> 
    c.execute((sql_statement)) 
ValueError: operation parameter must be str or unicode 

请您参考如下方法:

您需要将 sql 语句和参数作为单独的参数传递给 execute()。您目前正在传递一个元组。

改为这样做:

sql_statement = "insert into password values(?, ?, ?);" 
c.execute(sql_statement, (None, sites, password)) 

现在 sql_statement 是一个字符串,参数作为第二个单独的参数传入。

请注意,raw_input() 已经返回一个 str 对象,无需再次将其转换为 str。