You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将SQLite数据库文件读取到Polars DataFrame?解决AttributeError

解决Polars读取SQLite数据库时的AttributeError问题

问题原因

Polars的pl.read_sql()方法不直接支持Python标准库的sqlite3.Connection对象,它要求传入的是SQLAlchemy引擎实例或数据库连接字符串。报错是因为底层代码尝试对传入的原生连接对象执行字符串操作(比如split),但该对象并非字符串类型。

解决方法

方法1:使用SQLAlchemy引擎(推荐方案)

首先确保安装了SQLAlchemy:

pip install sqlalchemy

修改代码如下,用SQLAlchemy创建引擎后传入read_sql:

import polars as pl
from sqlalchemy import create_engine

# 创建SQLite的SQLAlchemy引擎
engine = create_engine('sqlite:///database.sqlite')

# 读取数据到Polars DataFrame
df = pl.read_sql("SELECT * from table_name", engine)

print(df)

方法2:原生sqlite3查询后转成Polars DataFrame

如果不想额外依赖SQLAlchemy,可以先用sqlite3执行查询,再手动转换结果:

import sqlite3
import polars as pl

conn = sqlite3.connect('database.sqlite')
cursor = conn.cursor()

# 执行SQL查询
cursor.execute("SELECT * from table_name")
# 获取结果列名
columns = [col[0] for col in cursor.description]
# 获取所有数据行
data_rows = cursor.fetchall()

# 将结果转换为Polars DataFrame
df = pl.DataFrame(data_rows, schema=columns)

print(df)
# 关闭数据库连接
conn.close()

内容的提问来源于stack exchange,提问作者canon-ball

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 04:50:19