2009-11-30 11 views
2

Я использую cdb для постоянной базы данных в python. Я хотел бы связать целочисленные идентификаторы с некоторыми строками, и я бы хотел избежать хранения каждого из этих целых идентификаторов в виде строк и вместо этого хранить их как целое число. cdb, хотя и ищет строку или буфер только для чтения. Есть ли способ сохранить эти ключи в виде целых чисел вместо строк?Python integer to only-only buffer

Например:

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) 

ответ

4

Согласно cdb website базу данных только берет строки в качестве ключей

АСЫ представляют собой ассоциативный массив: он отображает строки (ключи) для строк (данные).

Таким образом, сначала вам нужно будет преобразовать целые числа в строки. Я предлагаю вам обернуть str в служебную функцию и забыть о накладных расходах.