Python parse comma-separated number into int

How would I parse the string 1,000,000 (one million) into it’s integer value in Python?

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

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

Method 2

There’s also a simple way to do this that should handle internationalization issues as well:

>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
'en_US.UTF-8'
>>> locale.atoi("1,000,000")
1000000
>>>

I found that I have to explicitly set the locale first as above, otherwise it doesn’t work for me and I end up with an ugly traceback instead:

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'

Method 3

Replace the ‘,’ with ” and then cast the whole thing to an integer.

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


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x