首页 > 解决方案 > 在 python 的 sqlite 查询中使用 pandas

问题描述

我犯了错误。之后我使用了熊猫

j=("SELECT sth FROM table WHERE rowid = ? ", (index,))
df1 = pd.read_sql_query(j, conn)

索引是一个数字所以我有一个错误

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/pandas/io/sql.py", line 1401, in execute
    cur.execute(*args)
ValueError: operation parameter must be str

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "dialog.py", line 142, in Ayat
    df1 = pd.read_sql_query(j, conn)
  File "/usr/lib/python3/dist-packages/pandas/io/sql.py", line 331, in read_sql_query
    parse_dates=parse_dates, chunksize=chunksize)
  File "/usr/lib/python3/dist-packages/pandas/io/sql.py", line 1436, in read_query
    cursor = self.execute(*args)
  File "/usr/lib/python3/dist-packages/pandas/io/sql.py", line 1413, in execute
    raise_with_traceback(ex)
  File "/usr/lib/python3/dist-packages/pandas/compat/__init__.py", line 340, in raise_with_traceback
    raise exc.with_traceback(traceback)
  File "/usr/lib/python3/dist-packages/pandas/io/sql.py", line 1401, in execute
    cur.execute(*args)
pandas.io.sql.DatabaseError: Execution failed on sql '<sqlite3.Cursor object at 0x7f6338146730>': operation parameter must be str

如果我不使用 pandas 就可以并且正常运行

标签: python-3.xpandassqlite

解决方案


这不是将 pandas 与 sqlite 一起使用的方式。正确的是:

import pandas as pd
import sqlite3

conn = sqlite3.connect('File.db')
m = 1
query = "SELECT * FROM Table WHERE priority = {0};".format(m)

df = pd.read_sql_query(query, conn)

for * in df['*']:
  print('{}'.format(*))

无论如何感谢 owen79 的帮助


推荐阅读