是否有独立的Python类型转换库?

时间:2009-01-22 10:29:33

标签: python type-conversion

是否有任何独立的类型转换库?

我有一个只能理解字节/字符串的数据存储系统,但我可以标记元数据,例如要转换的类型。

我可以破解一些天真的类型转换器系统,就像其他应用程序在我之前所做的那样,或者我希望可以使用一个独立的库,除了我找不到一个。这种共同的活动很奇怪。

为了澄清,我会有类似的东西:

('123','整数')我想离开123

3 个答案:

答案 0 :(得分:3)

您有两种选择,可以使用structpickle模块。

使用struct指定格式并将数据压缩为字节数组。这对于使用C结构或写入需要二进制协议的网络应用程序非常有用。

pickle可以自动将复杂的Python结构序列化和反序列化为字符串。有一些警告,所以最好阅读documentation。我认为这是你想要的图书馆。

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

答案 1 :(得分: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功能。

答案 2 :(得分:1)