Python sqlite错误:ValueError:数据库参数必须是字符串或APSW Connection对象

时间:2016-11-03 02:39:09

标签: python sqlite

我正在尝试使用python脚本创建,编辑和读取sqlite文件。我的代码是服务器客户端模型,客户端在从服务器接收命令时写入数据库。

来自服务器的每个命令都在一个单独的线程上接收,以提供并行操作。

除非系统重新启动,否则客户端永远不会重新启动,但是在用户需要时启动服务器程序。

现在我的问题出现了,因为python的sqlite不是线程安全的。所以我有一个消费者队列到数据库进行所有写操作。

我无法提供代码,因为它非常长,并且很难解耦并提供完整的工作副本。

但是错误的代码片段是:

 #first line of the snippet code pasted above
 db = sqlite3.connect(self.sql_report)

我收到的错误是

{{1}}

第81行:这是:

{{1}}

我不知道为什么会出现这个错误。需要注意的一点是,只有在服务器运行几次后才会出现此错误。

1 个答案:

答案 0 :(得分:0)

错误正是它所说的。您正在传递self.sql_report作为要使用的字符串数据库文件名,但在进行调用时它不是字符串。

你需要找出它的真正含义,这是标准的Python调试。使用你通常使用的任何东西。这里还有一个建议,它将打印它的内容并放入交互式调试器中,以便您可以进一步检查。

try: db = sqlite3.connect(self.sql_report) except ValueError: print (repr(self.sql_report)) import pdb; pdb.set_trace() raise