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, а не строковый литерал.