Python: неверный литерал для int() с базой 10: '808.666666666667'
У меня есть script, который анализирует данные из файла csv. Следующая строка дает мне проблемы:
countData.append([timeStamp,int(my_csv[row][5])])
Это дает мне следующую ошибку:
ValueError: invalid literal for int() with base 10: '808.666666666667'
Строка файла csv выглядит следующим образом:
2013-06-12 15:09:00,svcName,0,0,10,808.666666666667
Я попробовал запустить int(808.666666666667)
в командной строке python, и он работает нормально.
Ответы
Ответ 1
Из справки по int
:
int (x, base = 10) → int или long
Если x не число или если задана база, то x должна быть строкой или Unicode-объект, представляющий целочисленный литерал в данной базе.
Итак, '808.666666666667'
является недопустимым литералом для int
для любого base
, используйте:
>>> int(float('808.666666666667' ))
808
int(808.666666666667)
работает отлично, потому что вы передаете ему float, а не строковый литерал.