2011-04-14 3 views
0

Lorsque vous essayez de convertir une chaîne en entier pour être utilisé comme une variable plus tard dans le code, je reçois le texte suivant:Conversion chaîne en entier avec python

print int(urlsuccessful[i]) 

ValueError: invalid literal for int() with base 10: '2,919,247' 
+0

comment se débarrasser des virgules? – matcheek

Répondre

3

Si seuls problèmes sont des virgules, essayez:

>>> int("2,919,247".replace(",", "")) 
2919247 
+0

On peut aussi: #urlsuccessful [i] = re.sub (",", "", urlsuccessif [i]) \t \t #urlerrors [i] = re.sub (",", "", urlerrors [i ]) – Cmag

1

int ne comprend pas des virgules, vous aurez envie pour les supprimer avant d'essayer de convertir

4

locale.atoi() va "démarquer" des entiers basés sur les paramètres régionaux en cours.

-1

Vous pouvez juste faire

def int2str(my_integer): 
    return "%d" % my_integer 
+2

Façon de gagner. –

+0

Elaboorating sur le commentaire @Ignacio Vazquez-Abrams: le retour ici convertira un entier en une chaîne (et vous pourriez le faire plus facilement avec ['str()'] (http://docs.python.org/library/ functions.html # str)), mais l'OP veut convertir une chaîne en un int. – GreenMatt

Questions connexes