【问题标题】:Python sqlite3 error- the database is encryptedPython sqlite3错误-数据库已加密
【发布时间】:2018-12-12 17:52:40
【问题描述】:

我正在尝试以我已下载到计算机上的 SQL 文件的形式查询数据库,以便在机器学习项目中使用这些数据。我查看了数据库源代码,并没有密码设置语句,所以我对不断收到的错误感到非常困惑,即“DatabaseError:文件已加密或不是数据库。”

import sqlite3 as lite

con  = None
con = lite.connect('haiku1aip1.sql')
cur =  con.cursor()
cur.execute('SELECT * FROM haiku1aip1')
rows = cur.fetchall()
poems = []
for row in rows:
    poems.append(row)
print(poems)

【问题讨论】:

  • haiku1aip1.sql 是 sqlite 数据库还是别的什么(比如一个充满 SQL 语句的文本文件)?

标签: sql database python-3.x sqlite


【解决方案1】:

con = lite.connect('haiku1aip1.sql')

此行正在尝试连接到名为“haiku1aip1.sql”的数据库,但.sql 不是数据库文件的正确文件扩展名。您的数据库文件将以 .db 结尾。

.sql 文件包含 SQL 查询、插入和其他语句(类似于您的 "SELECT * FROM haiku1aip1" 查询)。

【讨论】:

  • 那么解决方案是从我拥有的sql命令文件创建数据库,然后使用此代码访问它,除了像您提到的那样更改文件扩展名吗?跨度>
  • @anonymous_duck 这取决于 SQL 文件中包含哪些语句。是查询(例如SELECT ...)吗?还是它也创建表或插入数据(例如CREATE ...INSERT ...)?
猜你喜欢
  • 2012-03-19
  • 2014-08-29
  • 2022-11-09
  • 1970-01-01
  • 1970-01-01
  • 2010-12-03
  • 1970-01-01
  • 1970-01-01
  • 2022-12-18
相关资源
最近更新 更多