Есть ли отдельная библиотека преобразования типов Python?

Существуют ли библиотеки преобразования автономного типа?

У меня есть система хранения данных, которая понимает только байты/строки, но я могу пометить метаданные, такие как тип, который нужно преобразовать.

Я мог взломать некоторую наивную систему преобразователей типов, как это делало перед собой все другие приложения, или я мог бы надеяться использовать автономную библиотеку, за исключением того, что не могу ее найти. Нечетный для такой общей деятельности.

Чтобы уточнить, у меня будет что-то вроде:

('123', 'integer'), и я хочу выйти 123

Ответ 2

У вас есть два варианта: используйте struct или pickle.

С struct вы указываете формат и пресекаете данные в байтовый массив. Это полезно для работы с структурами C или для записи в сетевые приложения, для которых требуется двоичный протокол.

pickle может автоматически сериализовать и десериализовать сложные структуры Python в строку. Есть некоторые предостережения, поэтому лучше прочитать документацию . Я думаю, что это наиболее вероятная библиотека, которую вы хотите.

>>> 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}

Ответ 3

Рассмотрим это.

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)

Является ли это достаточно хорошей автономной библиотекой для такой общей деятельности? Будет ли это достаточно проверенной, отказоустойчивой библиотеки? Или есть что-то большее, что требуется?

Если вам нужно больше или разных преобразований даты и времени, вы просто добавляете новые функции toDate с различными форматами.