2013-04-09 92 views
0

我正在运行一个Scrapy项目,我正在寻找最好的方法来在本地存储已扫描的数据。目前我使用AnyDBM,但我一直运行一段时间后,发现了以下错误:在Python本地存储数据

bsddb.db.DBRunRecoveryError: (-30973, 'DB_RUNRECOVERY: Fatal error, run database recovery -- PANIC: fatal region error detected; run recovery')

据我的东西,我做错了,我是很新,Python,但我想知道如果除了Anydbm之外还有更好的解决方案。

我正在存储我已经爬过的页面的数字ID,并且将存储大约500,000条记录,并计划为将来的项目提供3-4百万的记录。

AnyDBM是我应该坚持还是应该改变为更适合这项工作的东西。

+0

您使用/规划使用多个线程/进程吗? – nvlass 2013-04-09 09:52:44

回答

1

默认情况下,python自带sqlite3这是一个很好的数据库系统。

这是一个pretty good tutorial就可以了。把表放在内存中使用:

conn = sqlite3.connect(":memory:") 
conn.isolation_level = None 
cur = conn.cursor() 
1

看起来很适合sqlite,它已经是Python标准库的一部分。