如何在Python中使用polars包读取SQLite数据库文件

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

我想使用

polars
包读取 SQLite 数据库文件 (database.sqlite)。我尝试以下失败:

import sqlite3
import polars as pl

conn = sqlite3.connect('database.sqlite')
df = pl.read_sql("SELECT * from table_name", conn)

print(df)

出现以下错误:

AttributeError: 'sqlite3.Connection' object has no attribute 'split'

有什么建议吗?

python sqlite python-polars
2个回答
5
投票

docs,您可以看到 pl.read_sql 接受连接字符串作为参数,并且您正在发送对象 sqlite3.Connection,这就是您收到该消息的原因。

您应该首先生成连接字符串,这是您的数据库的 url

db_path = 'database.sqlite'
connection_string = 'sqlite://' + db_path

之后,您可以输入更新的下一行,这给您带来了问题:

df = pl.read_sql("SELECT * from table_name", connection_string)

0
投票

你可以通过“pl.read_database”而不是“pl.read_sql”来做到这一点。

我可以通过这种方式使用极坐标读取sqlite3 db。
来自极地网站:
https://docs.pola.rs/py-polars/html/reference/api/polars.read_database.html#polars.read_database

蟒蛇代码----

    导入sqlite3
    将极坐标导入为 pl
    
    dbname = "test.db" # sqlite3 数据库文件路径
    conn = sqlite3.connect(数据库名称)
    
    df = pl.read_database(
        查询=“SELECT * FROM test_table”,
        连接=user_conn,
        schema_overrides={"normalized_score": pl.UInt8},
    )

我可以获得 sqlite3 db.table。

© www.soinside.com 2019 - 2024. All rights reserved.