比如说,我有一个(德语)表达式,内容为10.401,40 (in Mio EUR)
,我想在 Python 中将其转换为真正的浮点数(在本例中约为 100 亿)。
这是我到目前为止所拥有的:
import re, locale
from locale import *
locale.setlocale(locale.LC_ALL, 'de_DE')
string = "10.401,40 (in Mio EUR)"
m = re.search(r'([\d.,]+)', string)
if m is not None:
number = atof(m.group(1)) * 10**6
然而,它提出了一个ValueError
(ValueError: invalid literal for float(): 10.401.40
).
为什么?难道不是.setlocale()
指令应该完全处理这个问题吗?有没有我(还!)不知道的Pythonic方式?
我也得到了同样的ValueError
. As 这个类似的问题解释说,您需要在系统中安装德语区域设置。按照上述内容,我输入sudo dpkg-reconfigure locales
并选择了de-DE.UTF-8
。我必须修改区域设置行以匹配locale.setlocale(locale.LC_ALL, 'de_DE.utf8')
并让你的代码片段运行。祝你好运!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)