我正在逐行读取文件。行由“|”分隔。由于从文件中读取值后,它们会被解释为字符串,因此我想将它们转换为正确的表示形式(我现在是每个“列”值的数据类型)。
因此,我编写了一个如下所示的小“翻译”方法:
def translateType(self, dataType):
if dataType == "INTEGER":
return int
elif dataType == "FLOAT":
return float
elif dataType == "STRING":
return str
我认为这并不是一个真正令人满意的解决方案,因为这段代码在某种程度上不是很丑陋,并且当需要支持更多数据类型时会很痛苦。
您是否有任何想法如何使这种“排版”以某种方式更好且更具可扩展性?
最佳答案
使用字典,例如
def translateType(t):
return {"INTEGER": int, "FLOAT": float, "STRING": str}.get(t, None)
或者,如果性能至关重要(首先配置文件),请在参数列表中定义字典,这样就不需要在每次调用函数时都创建它:
def translateType(t, types={"INTEGER": int, "FLOAT": float, "STRING": str}):
return types.get(t, None)
关于python - 设置Python文件中值的允许数据类型/类型转换的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7990365/