代码之家  ›  专栏  ›  技术社区  ›  Abhi

基于数据库的任意密钥字典

  •  0
  • Abhi  · 技术社区  · 16 年前

    python shelf模块似乎只允许使用字符串键。有没有办法使用任意类型的(例如数字)键?可能是sqlite支持的字典?

    谢谢!

    4 回复  |  直到 16 年前
        1
  •  1
  •   Noah    16 年前

    为什么不把键转换成字符串呢?数字键应该很容易做到这一点。

        2
  •  1
  •   Alex Martelli    16 年前

    pickle 或 cPickle ,就像 shelve.py 是的)每一个键,以及每一个值。它不太值得子类化 shelve.Shelf 搁置.py 你自己的模块和编辑它,以适应。这基本上就像是从头开始编写新模块,但您会得到一个工作示例,向您展示其结构和指导原则;-)。

    sqlite 在足够一般的情况下没有真正的优势(例如,键可以是任意元组,每个条目具有不同的arity和类型)--无论如何,您都必须序列化键以使它们同质化。不过,没有什么能阻止你使用 橄榄石

        3
  •  0
  •   tamasd    16 年前

    我想你想让[]操作符过载。您可以通过定义 __getitem__ 方法。

        4
  •  0
  •   NorthGuard    9 年前

    最后我把 DbfilenameShelf 从 shelve

    https://github.com/North-Guard/simple_shelve