可能的重复:
如果python在数千个分离器中,我该如何使用python将字符串转换为数字?

我将如何解析字符串 1,000,000 (一百万)在Python中的整数价值?

有帮助吗?

解决方案

>>> a = '1,000,000'
>>> int(a.replace(',', ''))
1000000
>>> 

其他提示

还有一种简单的方法可以处理国际化问题:

>>> import locale
>>> locale.atoi("1,000,000")
1000000
>>> 

我发现我必须先明确设置该语言环境,否则对我不起作用,最终得到了一个丑陋的追溯:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/locale.py", line 296, in atoi
    return atof(str, int)
  File "/usr/lib/python2.6/locale.py", line 292, in atof
    return func(string)
ValueError: invalid literal for int() with base 10: '1,000,000'

因此,如果您发生这种情况:

>>> locale.setlocale(locale.LC_ALL, 'en_US.UTF8')
'en_US.UTF8'
>>> locale.atoi("1,000,000")
1000000
>>> 

用“”替换为“”,然后将整个内容施加给整数。

>>> int('1,000,000'.replace(',',''))
1000000
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top