Pregunta

¿Hay alguna biblioteca de conversión de tipo independiente?

Tengo un sistema de almacenamiento de datos que solo comprende bytes / cadenas, pero puedo etiquetar metadatos como el tipo al que se va a convertir.

Podría piratear algún ingenuo sistema de convertidores de tipos, como cualquier otra aplicación lo ha hecho antes que yo, o espero poder usar una biblioteca independiente, excepto que no puedo encontrar una. Extraño para una actividad tan común.

Solo para aclarar, tendré algo como:

('123', 'integer') y quiero salir 123

¿Fue útil?

Solución 3

Otros consejos

Tiene dos opciones: use struct o pickle módulos.

Con struct, especifica un formato y compacta sus datos a una matriz de bytes. Esto es útil para trabajar con estructuras C o escribir en aplicaciones en red que requieren un protocolo binario.

pickle puede serializar y deserializar automáticamente estructuras complejas de Python en una cadena. Hay algunas advertencias, por lo que es mejor leer la documentación . Creo que esta es probablemente la biblioteca que desea.

>>> 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 esto.

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)

¿Es una biblioteca independiente suficientemente buena para una actividad tan común? ¿Sería suficiente una biblioteca bien probada y resistente a errores? ¿O hay algo más que se requiere?

Si necesita más o diferentes conversiones de fecha / hora, simplemente agregue nuevas funciones toDate con diferentes formatos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top