Esiste una libreria di conversione di tipo Python autonoma?
-
19-08-2019 - |
Domanda
Esistono librerie di conversione di tipo standalone?
Ho un sistema di archiviazione dati che comprende solo byte / stringhe, ma posso taggare metadati come il tipo in cui convertire.
Potrei hackerare un sistema ingenuo di convertitori di tipi, come ogni altra applicazione ha già fatto prima di me, o spero di poter usare una libreria autonoma, tranne che non riesco a trovarne uno. Strano per un'attività così comune.
Giusto per chiarire, avrò qualcosa del tipo:
('123', 'intero') e voglio uscirne 123
Soluzione 3
Flatland lo fa bene. http://discorporate.us/projects/flatland/
Altri suggerimenti
Hai due opzioni, o usa struct o pickle moduli.
Con struct specifichi un formato e compatta i tuoi dati in array di byte. Ciò è utile per lavorare con strutture C o scrivere su app in rete che richiedono un protocollo binario.
pickle può serializzare e deserializzare automaticamente strutture Python complesse su una stringa. Ci sono alcuni avvertimenti, quindi è meglio leggere la documentazione . Penso che questa sia probabilmente la libreria che desideri.
>>> 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}
Considera questo.
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)
È una libreria autonoma abbastanza buona per un'attività così comune? Sarebbe sufficiente una libreria ben collaudata e resistente agli errori? O c'è qualcosa di più che è richiesto?
Se hai bisogno di più o diverse conversioni di data / ora, aggiungi semplicemente nuove funzioni toDate
con formati diversi.