n*********2 发帖数: 357 | 1 在写一个小Python 程序。 里面有一个dictionary; 这个dictionary需要动态更新和
查询。这个dictionary很大,全部放到内存里面不可行. (试过全部内存,Python 程序
会导致Killed 。)
试着用了一下Python 的shelve把这个dictionary放到文件里面去。问题是shelve要求
dictionary 的key 是string。 而我们的dictionary的key 是自定义的, 不满足str的
要求。这个有什么短平快的搞法嘛?
(看了一下网上, 有人推荐用sqlite3. 但是,这个搞法得比较大地改动程序。能不折
腾是最好的。)
多谢! |
y****w 发帖数: 3747 | 2 给数据库访问加一层包装 getter/setter 加进去
你可以试试redis 比需要写sql的sqlite3可能更适合你 |
k*********9 发帖数: 1 | 3 所有object都可以用string表示的。简单的办法是用个base class function ToString
()。然后所有object都implement这个function。只要保证产生的string不重复。 |
p***o 发帖数: 1252 | 4 很大是多大?要是aws上那些1T内存的机器都不够,其他的搞法肯定够呛。
还有一个可能是你的python还是32位的...
【在 n*********2 的大作中提到】 : 在写一个小Python 程序。 里面有一个dictionary; 这个dictionary需要动态更新和 : 查询。这个dictionary很大,全部放到内存里面不可行. (试过全部内存,Python 程序 : 会导致Killed 。) : 试着用了一下Python 的shelve把这个dictionary放到文件里面去。问题是shelve要求 : dictionary 的key 是string。 而我们的dictionary的key 是自定义的, 不满足str的 : 要求。这个有什么短平快的搞法嘛? : (看了一下网上, 有人推荐用sqlite3. 但是,这个搞法得比较大地改动程序。能不折 : 腾是最好的。) : 多谢!
|
C*****l 发帖数: 1 | 5 得看你怎么用这个dict,大体上就是缓存到文件里面去
【在 n*********2 的大作中提到】 : 在写一个小Python 程序。 里面有一个dictionary; 这个dictionary需要动态更新和 : 查询。这个dictionary很大,全部放到内存里面不可行. (试过全部内存,Python 程序 : 会导致Killed 。) : 试着用了一下Python 的shelve把这个dictionary放到文件里面去。问题是shelve要求 : dictionary 的key 是string。 而我们的dictionary的key 是自定义的, 不满足str的 : 要求。这个有什么短平快的搞法嘛? : (看了一下网上, 有人推荐用sqlite3. 但是,这个搞法得比较大地改动程序。能不折 : 腾是最好的。) : 多谢!
|
m*t 发帖数: 7490 | |
s*********h 发帖数: 6288 | 7 这种情况与其找一个hack来处理,不如想想办法如何改变数据结构。 |