我正在使用pyhocon
包,我希望其中一个参数作为int / int分区给出。 conf文件看起来像:
{
var = 1/3
}
但是,这是我尝试的方法:
>>> from pyhocon import ConfigFactory
>>> conf = ConfigFactory.parse_file(conf_path)
>>> conf.var
'1/3'
>>> conf.get_float('var')
pyhocon.exceptions.ConfigException: var has type 'str' rather than 'float'
我怎么能强迫var
有浮动类型? (没有使用某种eval
)
3/4
不是浮动的。 0.75
是。你需要先“计算”你的字符串。
使用
{
var = 0.75
}
代替。
或者:
import operator
k = operator.truediv( *map(int,"3/4".split("/"))) # conf.var
print(k)
去0.75
可能eval是最简单的
In [3]: conf['var'] = eval(conf['var'])
In [4]: conf.get_float('var')
Out[4]: 0.75
如果要在程序中使用fractions
,请使用正确的数据类型:
import fractions
k = fractions.Fraction( "1/3" ) # you use conf.var instead of '1/3'
print(k)
print(float(k))
输出:
Fraction(1, 3)
0.3333333333333333
fraction.Fraction(string)
为你的conf.var
工作