问题标签 [pysqlite]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4709 浏览

python - 如何判断 pysqlite 2.6.3 中的更新语句是否成功

pysqlite用来与 SQLite 数据库交谈,我想知道检查UPDATESQL 语句是否实际上已成功更新表中的某些内容的正确方法是什么。

是否有一个变量我可以在执行后快速检查pysqlite

0 投票
1 回答
10115 浏览

python - Python sqlite 将表从一个数据库复制到另一个数据库

我在 Windows XP 上使用带有内置 sqlite3 模块的 python 2.7。代码如下所示:

当我用db_copy.py src.db dest.db源数据库运行它时,它翻了一番。所以我将源文件属性设置为只读。我现在得到:

似乎源数据库连接和目标数据库连接混合在一起?我已经调试了几个小时没有找到原因。

0 投票
0 回答
98 浏览

python - 修复了从 CSV 到 pysqlite 的列数量

我在 Windows 8 上使用 Python 2.6(32 位)。目的是从逗号分隔的 CSV 文件构建 pysqlite 数据库,其中第一行是列名。

我的代码如下(跳过了一些代码):

最初我使用 AddEntries() 将 CSV 文件中的条目添加到我的数据库中。但是,对于 Excel 2003 生成的 CSV 文件,每行的“字段”数量可能不同。如果某些行包含拖尾的空列或一些额外的垃圾,则它们可能包含比“列名”行更多或更少的字段(额外或缺少逗号)。

我不能使用“field_size_limit”,因为我需要先阅读 CSV 来定义它。

有没有更简单的方法来实现以下任何目的?
1.读取CSV文件时,指定固定数量的列,自动插入或删除逗号?
2. 向mysqlite数据库插入条目时,指定固定数量的列,以便它可以接受可变数量的输入列?

提前致谢。

0 投票
1 回答
62 浏览

python - pysqlite 中的 row_pop() 函数?

需要从表中获取一行,并删除同一行

它在哪一行都没有关系。该函数应该是通用的,因此列名是未知的,并且没有标识符。(可以假设行作为一个整体是唯一的。)

结果函数类似于堆栈的 pop() 函数,只是元素的顺序无关紧要。

可能的解决方案:

  • 删除到临时表中。
    (这可以在 pysqlite 中完成吗?)
  • Get *以 1 为限制,Delete *以 1 为限制。
    (如果只有一个用户,这是否安全?)
  • 获取一行,然后使用WHERE比较整行的子句删除。
    (这可以在 pysqlite 中完成吗?)

建议?

0 投票
1 回答
1515 浏览

django - pysqlite DatabaseError:除非使用 text_factory,否则不得使用 8 位字节串

我正在尝试将我正在通过 csv 文件读取的文档字符串插入到 sqlite 数据库中,该数据库具有(儿童)等字符,它会引发以下错误:

DatabaseError:您不得使用 8 位字节串,除非您使用可以解释 8 位字节串的 text_factory(如 text_factory = str)。强烈建议您将应用程序切换为 Unicode 字符串。

在插入文档之前,我确保将字符串转换为 unistring 。

unicode('儿童', 'unicode-escape')

我正在使用 Django ORM 来保存数据。我能做些什么来摆脱这个吗?

0 投票
1 回答
474 浏览

python - JSON通过python到sqlite:REPLACE INTO无法识别相同的行

我正在从 url/JSON 中提取数据,解码 JSON 的元素并将其发送到 sqlite 表。

当我每隔一分钟提取一次 JSON 时,有时我会提取相同的 JSON(尚未刷新)。但是,我不想在表中多次输入相同的数据。这个问题的任何解决方案都是有帮助的。

我的想法是简单地将 JSON 的“执行时间”元素作为传递给 sqlite 的字段之一。因此,如果我使用 REPLACE 而不是 INSERT,当且仅当 JSON 具有新时间戳时,我才会将新行插入到现有 SQL 表中。这就是我的意思:

但是,这并不能防止输入重复的行。每次脚本运行时,都会将新的(即使重复的)条目插入到表中。

想法?其他解决方案?非常感谢。

0 投票
1 回答
125 浏览

python - 使用 python sqlite3 模块时,为什么在 VACUUM 之后不更新 ROWID?

我正在开发一个使用 python sqlite3 模块的应用程序。我的数据库使用了 sqlite3 提供的隐式 ROWID 列。我希望在删除一些行并清理数据库后对 ROWID 进行重新排序。因为在sqlite3官方文档中:

VACUUM 命令可以更改任何没有显式 INTEGER PRIMARY KEY 的表中条目的 ROWID。

我的 pysqlite 版本是2.6.0,sqlite 版本是3.5.9. 谁能告诉我为什么它不起作用?使用吸尘器时有什么需要注意的吗?

PS我安装了一个独立的 sqlite,其版本是3.3.6. 我测试了其中的真空语句,并且 ROWID 得到了更新。那么罪魁祸首可能是版本吗?还是可能是 pysqlite 的错误?

提前感谢您的任何想法或建议!

0 投票
0 回答
97 浏览

python - 如何部署到 cloudcontrol 需要 pysqlite 的 python 应用程序?

我有一个依赖于pysqlite模块的 python web 应用程序,但将其推送到 cloudcontrol 失败并出现错误

remote: src/connection.h:33:21: fatal error: sqlite3.h: No such file or directory

有什么方法可以让该应用程序在 cloudcontrol 上运行,还是暂时失败?

0 投票
0 回答
198 浏览

python - 在回调函数中实例化 SQLAlchemy 类

我是 SQLAlchemy 和 Python 的新手,我正在尝试在 Tkinter Button 回调中实例化一个 sqlalchemy 对象。这是代码:

我收到以下错误:

似乎无法识别回调中的 sqlalchemy“测试”类。我尝试从 tk 外部调用 saveTest 函数来实例化一个 Test 类,它可以工作。我还在回调中实例化了其他类(不是基于 sqlalchemy),所以它不起作用似乎真的很奇怪。必须有办法做到这一点......任何意见将不胜感激。——丹尼尔·W。

0 投票
1 回答
196 浏览

python - 使用可变数量的 WHERE 子句匹配任意数量的关键字 pysqlite

我正在使用 pysqlite 构建和搜索关键字数据库 + 对应于每个关键字的 URL 集。我搜索数据库的策略适用于 1 个关键字,因为它只需要 SQL 语句中的 1 个 WHERE 子句。就像是:

但是,我想将任意数量的关键字与我的数据库匹配,我相信这相当于在它们之间有几个带有 OR 语句的 WHERE 子句。因为我不知道我会得到多少关键字,所以我不能假设特定数量的 WHERE 子句并使用 API 的替换能力填充它们。

我相信我可以使用 Python 的字符串插入操作来使用我找到的每个关键字的 OR 语句来破坏 WHERE 语句。我很确定这很hacky,因为它可能导致注入攻击漏洞。

我也考虑过使用 .executemany() 函数,但它会运行许多单独的选择,而不是包含所有所需的 WHERE 子句的选择。

有没有比我提到的字符串替换方法更好的方法呢?我对 SQL 很陌生,所以请容忍我和我的无知。谢谢。