是否有任何独立的类型转换库?
我有一个只能理解字节/字符串的数据存储系统,但我可以标记元数据,例如要转换的类型。
我可以破解一些天真的类型转换器系统,就像其他应用程序在我之前所做的那样,或者我希望可以使用一个独立的库,除了我找不到一个。这种共同的活动很奇怪。
为了澄清,我会有类似的东西:
('123','整数')我想离开123
答案 0 :(得分:3)
使用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)
Flatland做得很好。 http://discorporate.us/projects/flatland/