由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 一个Python程序里面大的dictionary的问题
进入Programming版参与讨论
1 (共1页)
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
6
redis,效率肯定比自己搞的高
s*********h
发帖数: 6288
7
这种情况与其找一个hack来处理,不如想想办法如何改变数据结构。
1 (共1页)
进入Programming版参与讨论