相关疑难解决方法(0)

Python sqlite3和并发

我有一个使用"线程"模块的Python程序.每隔一秒,我的程序就会启动一个新的线程,从网络中获取一些数据,并将这些数据存储到我的硬盘中.我想使用sqlite3来存储这些结果,但我无法让它工作.问题似乎与以下几行有关:

conn = sqlite3.connect("mydatabase.db")
Run Code Online (Sandbox Code Playgroud)
  • 如果我将这行代码放在每个线程中,我会得到一个OperationalError,告诉我数据库文件已被锁定.我想这意味着另一个线程通过sqlite3连接打开了mydatabase.db并锁定了它.
  • 如果我将这行代码放在主程序中并将连接对象(conn)传递给每个线程,我会得到一个ProgrammingError,说在一个线程中创建的SQLite对象只能在同一个线程中使用.

以前我将所有结果存储在CSV文件中,并且没有任何这些文件锁定问题.希望这可以用sqlite实现.有任何想法吗?

python sqlite

79
推荐指数
6
解决办法
8万
查看次数

标签 统计

python ×1

sqlite ×1