Frage

Ich bin mit cdb für eine konstante Datenbank in Python. Ich möchte integer ids mit einigen Strings verknüpfen, und ich würde jede dieser ganze Zahl ids als Strings zu vermeiden, wie die Speicherung und stattdessen speichern sie als Integer. cdb obwohl sucht entweder einen String oder ein Nur-Lese-Puffer. Gibt es eine Möglichkeit, dass ich diesen Schlüssel als ganze Zahlen anstelle von Strings speichern kann?

Zum Beispiel:

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)
War es hilfreich?

Lösung

Nach der cdb Website die Datenbank nur Strings als Schlüssel nimmt

  

A CDB ist ein assoziatives Array. Es bildet Saiten (Schlüssel) in Strings (Daten)

So Sie zuerst die ganzen Zahlen in Strings konvertieren müssen. Ich schlage vor, Sie str in einer Nutzenfunktion wickeln und vergessen Sie den Overhead.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top