我有一个简短的搁置练习程序,它在python 2.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中有什么变化吗?
答案 0 :(得分:0)
shelve
的行为类似于dict
已更改...在Python 2.x中dict
用于在{{1}时返回列表在Python 3.x中调用它会返回键的视图对象。如果您想要实际的密钥,则必须将它们具体化为.keys()
:
list