Frage

Gibt es eigenständige Konvertierungsbibliotheken vom Typ?

Ich habe ein Datenspeichersystem, das nur Bytes/Zeichenfolgen versteht, aber ich kann Metadaten markieren, wie z. B. den Typ, in das man konvertiert werden soll.

Ich könnte ein naives System von Typkonvertern hacken, wie es jede andere Anwendung vor mir durchgeführt hat, oder ich könnte hoffentlich eine eigenständige Bibliothek verwenden, außer dass ich keine finden kann. Seltsam für eine so gemeinsame Aktivität.

Nur um zu klären, ich werde so etwas haben wie:

('123', 'Integer') und ich möchte raus 123

War es hilfreich?

Lösung 3

Andere Tipps

Sie haben zwei Optionen, entweder verwenden Sie die Struktur oder Essiggurke Module.

Mit Struktur geben Sie ein Format an und kompaktiert Ihre Daten in Byte -Array. Dies ist nützlich, um mit C -Strukturen zu arbeiten oder in vernetzte Apps zu schreiben, die erforderlich sind, sind ein binäres Protokoll.

Pickle kann komplexe Python -Strukturen automatisch zu einer Saite serialisieren und deserialisieren. Es gibt einige Einschränkungen, also ist es am besten zu lesen Dokumentation. Ich denke, dies ist die wahrscheinlichste Bibliothek, die Sie wollen.

>>> import pickle
>>> v = pickle.dumps(123)
>>> v
'I123\n.'
>>> pickle.loads(v)
123
>>> v = pickle.dumps({"abc": 123})
>>> v
"(dp0\nS'abc'\np1\nI123\ns."
>>> pickle.loads(v)
{'abc': 123}

Bedenken Sie.

import datetime

def toDate( someString ):
    return datetime.datetime.strptime( someString, "%x" ).date()

typeConversionMapping = { 'integer': int, 'string': str, 'float': float, 'date': toDate }
def typeConversionFunction( typeConversionTuple ):
    theStringRepresentation, theTypeName = typeConversionTuple
    return typeConversionMapping[theTypeName](theStringRepresentation)

Ist das eine gut genug eigenständige Bibliothek für eine so gemeinsame Aktivität? Wäre das ausreichend von einer gut getesteten, fehlerresistenten Bibliothek? Oder ist etwas mehr erforderlich?

Wenn Sie mehr oder unterschiedliche Datums-/Zeitkonvertierungen benötigen, fügen Sie einfach neue hinzu toDate Funktionen mit verschiedenen Formaten.

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