import polars as pl
import sqlite3

conn = sqlite3.connect("test.db")
df = pl.DataFrame({"col1": [1, 2, 3]})

根据pl.write_database的文档,我需要为SQLite数据库传递一个连接URI字符串,例如"SQLite:/Path/to/lobase.db":

df.write_database("test_table", f"sqlite:////test.db", if_table_exists="replace")

但是,我得到了以下错误:

OperationalError: (sqlite3.OperationalError) unable to open database file

编辑:根据答案,使用pip install polars[sqlalchemy]命令安装SQLAlChemy.

推荐答案

使用SQLite时,斜杠的数量取决于您访问SQLite文件的方式.如果你按照 comments 中的建议使用两个斜杠,你会看到:

sqlalchemy.exc.ArgumentError: Invalid SQLite URL: sqlite://test.db
Valid SQLite URL forms are:
 sqlite:///:memory: (or, sqlite://)
 sqlite:///relative/path/to/file.db
 sqlite:////absolute/path/to/file.db

在您的例子中,您似乎希望使用3个斜杠,而不是4.请try 如下所示:

df.write_database("test_table", f"sqlite:///test.db", if_table_exists="replace")

这将是一个工作示例,基于您提供的示例代码片段:

import polars as pl
import sqlite3

conn = sqlite3.connect("test.db")
df = pl.DataFrame({"col1": [1, 2, 3]})
df.write_database("test_table", f"sqlite:///test.db", if_table_exists="replace")

Python相关问答推荐

线性模型PanelOLS和statmodels OLS之间的区别

标题:如何在Python中使用嵌套饼图可视化分层数据?

删除所有列值,但判断是否存在任何二元组

在Polars(Python库)中将二进制转换为具有非UTF-8字符的字符串变量

如何从在虚拟Python环境中运行的脚本中运行需要宿主Python环境的Shell脚本?

如何获取numpy数组的特定索引值?

Godot:需要碰撞的对象的AdditionerBody2D或Area2D以及queue_free?

将9个3x3矩阵按特定顺序排列成9x9矩阵

Django REST Framework:无法正确地将值注释到多对多模型,不断得到错误字段名称字段对模型无效'<><>

删除marplotlib条形图上的底边

将pandas导出到CSV数据,但在此之前,将日期按最小到最大排序

try 检索blob名称列表时出现错误填充错误""

在用于Python的Bokeh包中设置按钮的样式

numpy数组和数组标量之间的不同行为

如何为需要初始化的具体类实现依赖反转和接口分离?

Pythonquests.get(Url)返回Colab中的空内容

如何从一个维基页面中抓取和存储多个表格?

利用广播使减法更有效率

了解如何让库认识到我具有所需的依赖项

如何通过函数的强式路径动态导入函数?