Целочисленный в Python буфер только для чтения

StackOverflow https://stackoverflow.com/questions/1822709

  •  10-07-2019
  •  | 
  •  

Вопрос

Я использую cdb для постоянной базы данных в python. Я хотел бы связать целочисленные идентификаторы с некоторыми строками, и я хотел бы избежать хранения каждого из этих целочисленных идентификаторов в виде строк, а вместо этого сохранить их как целое число. 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)
Это было полезно?

Решение

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

  

cdb - это ассоциативный массив: он отображает строки (ключи) в строки (данные).

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top