gpt4 book ai didi

python - 用Python读取sqlite文件 : sqlite3. DatabaseError: file is encrypted or is not a database

转载 作者:行者123 更新时间:2023-12-03 19:38:28 25 4
gpt4 key购买 nike

我收到了一个需要用 Python 读取的 sqlite 文件。

我可以使用“DB Browser for SQLite”应用程序打开文件。我可以看到表结构并在该应用程序中执行选择语句。所以文件看起来没问题。 (我没有创建它,也不知道它是如何创建的。)

但是,当我尝试从 Python 读取它时出现错误:

sqlite3.DatabaseError: 文件已加密或不是数据库

import sqlite3 as lite

sqlite3.sqlite_version
# '3.6.21'

con = lite.connect('path\file.sqlite')
cur = con.cursor()
cur.execute('SELECT * from mytable')

# sqlite3.DatabaseError: file is encrypted or is not a database

如果我用文本编辑器打开文件,那么第一个词是“SQLite format 3”,后面是不可读的文本。所以它是用版本 3 生成的?不确定是否需要将其转换为 db 文件?

我不确定从这里到哪里去。

最佳答案

当 SQLite 数据库的新格式与您安装的 Python 中的 SQLite 版本不兼容时,可能会出现此消息。

例如,我的常用 Python 报告:

>>> import sqlite3
>>> print sqlite3.sqlite_version
3.6.21

根据 MSYS2 file 命令,我尝试打开的文件是:

$ file testfile.sqlite
testfile.sqlite: SQLite 3.x database, last written using SQLite version 3008010

版本 3008010 => 3.8.10。

在 Windows 上,您可以通过从 SQLite Download Page 下载新的预构建 SQLite 版本来升级 Python 安装中的 SQLite 版本。 (选择 32 位或 64 位以匹配您的 Python 安装)并将其 sqlite3.dll 放在 \PythonX\DLLs 目录中的旧文件。

关于python - 用Python读取sqlite文件 : sqlite3. DatabaseError: file is encrypted or is not a database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32386523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com