Pregunta

Estoy usando cdb para una base de datos constante en python. Me gustaría asociar las identificaciones de enteros con algunas cadenas, y me gustaría evitar almacenar cada una de estas identificaciones de enteros como cadenas, y en su lugar almacenarlas como un entero. Sin embargo, cdb está buscando una cadena o un búfer de solo lectura. ¿Hay alguna manera de que pueda almacenar estas claves como enteros en lugar de cadenas?

Por ejemplo:

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)
¿Fue útil?

Solución

Según el sitio web cdb , la base de datos solo toma cadenas como claves

  

Un cdb es una matriz asociativa: asigna cadenas (claves) a cadenas (datos).

Por lo tanto, primero deberá convertir los enteros en cadenas. Le sugiero que ajuste el str en una función de utilidad y se olvide de la sobrecarga.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top