Pandas DatabaseError:提供的绑定数不正确
我试图从一个大的csv文件查询;我将显示前三行:Pandas DatabaseError:提供的绑定数不正确,pandas,sqlite,Pandas,Sqlite,我试图从一个大的csv文件查询;我将显示前三行: import pandas as pd df = pd.read_csv('crime.csv', nrows=3); df 由于内存限制,我先创建db文件,然后从那里查询,如下所示: import sqlite3 db = sqlite3.connect("crime.sqlite") for chunk in pd.read_csv('crime.csv', chunksize=1000): chunk.
import pandas as pd
df = pd.read_csv('crime.csv', nrows=3); df
由于内存限制,我先创建db文件,然后从那里查询,如下所示:
import sqlite3
db = sqlite3.connect("crime.sqlite")
for chunk in pd.read_csv('crime.csv', chunksize=1000):
chunk.to_sql("crime", db, if_exists="append")
db.execute("CREATE INDEX NEIGHBORHOOD_ID on crime(NEIGHBORHOOD_ID)")
db.close()
在这里,我定义了一个从新创建的.sqlite读取并查询的函数:
def crime_neighbor(neighbor_id):
conn = sqlite3.connect("crime.sqlite")
q = "SELECT * FROM crime WHERE NEIGHBORHOOD_ID = ?"
values = (neighbor_id,)
return pd.read_sql_query(q, conn, values)
当我运行crime\u neighbor(“cbd”)
时,我得到以下错误:
DatabaseError: Execution failed on sql 'SELECT * FROM crime WHERE NEIGHBORHOOD_ID = ?': Incorrect number of bindings supplied. The current statement uses 1, and there are 0 supplied.
我尝试将
values=(neighbor\u id,)
更改为values=[neighbor\u id,]
,但错误保持不变。检查pd.read\u sql\u查询(q,conn,values)的语法。
。它实际上并不发送参数。查看函数签名和参数。您忘了告诉read\u sql\u query
在哪里可以找到参数。查看函数签名和参数@DinoCoderSaurus谢谢;在我显式地将值赋给params参数后,它起作用了:返回pd.read\u sql\u查询(q,conn,params=values)
你能回答这个问题吗,这样我就可以结束这篇文章了?谢谢