我有一个简短的搁置练习程序,可以在python2.7中正常运行。我把它移到了3.3,因此:
import shelve
db = shelve.open('lib')
db['a'] = "string1"
db['b'] = "string2"
keylist = db.keys()
print( keylist )
db.close()现在我得到了这个结果(不完全是一个错误,但也不是期望的行为:
KeysView(<shelve.DbfilenameShelf object at 0x7f0f06b3be90>)对哪里出了问题以及如何修复它有什么想法吗?3.3版的搁置有什么变化吗?
发布于 2013-07-20 08:04:55
shelve的行为就像一个改变了的dict……在Python2.x中,当.keys()被调用时,dict用来返回一个列表,在Python3.x中,它返回一个键的视图对象。
keylist = list(db.keys())https://stackoverflow.com/questions/17757216
复制相似问题