Python entier au tampon en lecture seule
Question
J'utilise cdb pour une base de données constante en python. J'aimerais associer des identifiants d'entier à certaines chaînes et éviter de stocker chacun de ces identifiants sous forme de chaînes, mais plutôt de les stocker sous forme d'entier. Cependant, cdb recherche une chaîne ou un tampon en lecture seule. Est-il possible de stocker ces clés sous forme d’entiers au lieu de chaînes?
Par exemple:
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)
La solution
Selon le site Web cdb , la base de données ne prend que des chaînes sous forme de clés
Un cdb est un tableau associatif: il mappe des chaînes (clés) à des chaînes (données).
Vous devrez donc d'abord convertir les entiers en chaînes. Je vous suggère d’envelopper str
dans une fonction utilitaire et d’oublier les frais généraux.