Python 整数转只读缓冲区

2 投票
1 回答
1510 浏览
提问于 2025-04-15 16:32

我在用Python的cdb来创建一个常量数据库。我想把一些整数ID和字符串关联起来,但我希望把这些整数ID存储为整数,而不是把它们当作字符串来存。可是,cdb只接受字符串或者只读的缓冲区。请问有没有办法让我把这些键存储为整数,而不是字符串呢?

举个例子:

cdb = cdb.cdbmake("test.cdb","test.cdb.tmp")
key = 5
value = "some test string"

#this throws an error
maker.add(key,value)
#TypeError: add() argument 1 must be string or read-only buffer, not int

#this would work, but seems inefficient
maker.add(str(key),value)

1 个回答

4

根据cdb 网站的说法,这个数据库只接受字符串作为键。

cdb 是一种关联数组:它把字符串(键)映射到字符串(数据)。

所以你需要先把整数转换成字符串。我建议你把 str 包装成一个工具函数,这样就不用担心额外的开销了。

撰写回答