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

2024-06-01 04:57:14 发布

您现在位置:Python中文网/ 问答频道 /正文

有独立的类型转换库吗?

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

我可以像以前所有的应用程序一样,破解一些简单的类型转换器系统,或者我可以使用一个独立的库,除非我找不到。对于这样一种常见的活动来说很奇怪。

为了澄清,我想说:

('123','integer')我想得到123


Tags: 数据字符串标记应用程序类型字节系统integer
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函数。

您有两个选项,要么使用struct模块,要么使用pickle模块。

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

相关问题 更多 >