7 Stimmen

Lightweight pickle für Grundtypen in Python?

Alles, was ich tun möchte, ist serialisieren und unserialisieren Tupel von Strings oder Ints.

Ich habe mir pickle.dumps() angesehen, aber der Byte-Overhead ist erheblich. Im Grunde sieht es so aus, als ob es etwa 4x so viel Platz wie nötig benötigt. Außerdem brauche ich nur Grundtypen und muss keine Objekte serialisieren.

marshal ist vom Platz her etwas besser, aber das Ergebnis ist voll von bösen \x00 Bytes. Im Idealfall möchte ich, dass das Ergebnis für den Menschen lesbar ist.

Ich dachte an die Verwendung von repr() und eval(), aber gibt es eine einfache Möglichkeit, die ich erreichen könnte, ohne eval() zu verwenden?

Dies wird in einer Datenbank und nicht in einer Datei gespeichert. Der Byte-Overhead ist wichtig, weil er den Unterschied zwischen einer TEXT-Spalte und einer varchar-Spalte ausmachen kann, und generell wirkt sich die Kompaktheit der Daten auf alle Bereiche der Datenbankleistung aus.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X