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)
Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top