Existe uma biblioteca independente de conversão do tipo Python?
-
19-08-2019 - |
Pergunta
Existem bibliotecas de conversão do tipo independente?
Eu tenho um sistema de armazenamento de dados que entende apenas bytes/strings, mas posso marcar metadados como o tipo a ser convertido.
Eu poderia invadir algum sistema ingênuo de conversores de tipo, como todos os outros aplicativos foram feitos antes de mim, ou espero usar uma biblioteca independente, exceto que não consigo encontrar uma. Ímpar para uma atividade tão comum.
Só para esclarecer, terei algo como:
('123', 'Integer') e eu quero sair 123
Solução 3
Flatland faz isso bem. http://discorporate.us/projects/flatland/
Outras dicas
Você tem duas opções, ou use o estrutura ou salmoura módulos.
Com a Struct, você especifica um formato e compacta seus dados para a matriz de bytes. Isso é útil para trabalhar com estruturas C ou escrita em aplicativos em rede que exigem são protocolo binário.
O picles pode serializar automaticamente e desserializar estruturas de python complexas em uma corda. Existem algumas advertências, então é melhor ler o documentação. Eu acho que esta é a biblioteca que você deseja.
>>> 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}
Considere isto.
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)
Essa é uma biblioteca independente o suficiente para uma atividade tão comum? Isso seria suficiente de uma biblioteca bem testada e resiliente de erros? Ou há algo mais necessário?
Se você precisar de mais ou diferentes conversões de data/hora, basta adicionar novo toDate
funções com diferentes formatos.