为什么尝试从数据库表创建数据框时会出现 NotImplementedError?

问题描述 投票:0回答:2

使用 Pandas 我无法从 SQLite 表中读取:

import pandas as pd
import sqlite3 as sq

with sq.connect("master.db") as con:
    table = "personal"
    df = pd.read_sql_table(table, con)

数据库文件和代码在同一目录下。 Python 引发“NotImplementedError”。

python pandas sqlite
2个回答
4
投票

如果您想读取表的全部内容,您可以简单地使用 pd.read_sql_query()SELECT * FROM 查询:

import pandas as pd
import sqlite3 as sq

with sq.connect("master.db") as con:
   yourParams = ["personal"]    
   df = pd.read_sql_query("SELECT * FROM ?", con, params = yourParams)

请注意,建议在查询中使用参数来阻止 sql 注入的威胁。

您还可以使用pd.read_sql_table()。然而,它的参数是表名和 .db 文件本身,不是连接。因此,您可以通过以下方式创建数据框:

import pandas as pd
import sqlite3 as sq

df = pd.read_sql_table('personal','master.db')

-3
投票
import sqlite3

conn = sqlite3.connect("master.db")

curr = conn.cursor()

for row in curr.execute("SELECT * FROM personal")
    print(row)

conn.close()
© www.soinside.com 2019 - 2024. All rights reserved.