这是我在数据管道项目中面临的一个问题。 我有两个数据源。一个包含所有用户数据,另一个包含从用户数据到输出的所有列的元数据。在
所以python很擅长动态类型转换,就像我说的
a = float
b = "25.123"
c = a(b)
print(c)
>> 25.123
这就是我要做的,我想动态地键入强制转换值,以便正确地处理它们。从元数据数据源检索类型。 问题是当我对元数据执行django模型查询时,我得到unicode对象。在
^{pr2}$如何将这个u'float'转换为float? 这种方法有更好的选择吗? 我签出了this,但它不起作用
接受所有建议
您可以使用numpy库中的
astype
:诚然,这需要通过一个数组,因为
astype()
可以在numpy数组上工作,但是它可以将字符串作为类型来计算。在在第一个示例中,
a = float
,a
是一个内置函数,但在第二个示例中,a = u"float"
,a
是一个unicode字符串。如果您想在不需要创建动态映射的情况下完成该类型的转换,请执行以下操作:我建议您不要使用} /^{} 模块和}函数。在
eval()
(如{a1}所建议的那样),因为这可能导致重大的安全风险。这就是为什么我使用^{getattr()
来检索{您还可以创建一个映射(即
^{pr2}$dict
),将unicode字符串映射到其相应的函数(由comment建议):使用映射是最安全的方法,但它将您的“动态性”仅限于映射中列出的类型。在
您可以使用
eval()
函数来计算代码,但您需要小心使用该函数!否则,您可能会看到post。另一种解决方案是预先定义允许的类型,并使用typeConstructor
在字典映射typeName
中收集它们。在相关问题 更多 >
编程相关推荐