Python:基数为10的int()的无效文字:'808.666666666667'

ima*_*hat 13 python

我有一个脚本解析csv文件中的数据.以下行给了我一些问题:

countData.append([timeStamp,int(my_csv[row][5])])
Run Code Online (Sandbox Code Playgroud)

它给了我以下错误:

ValueError: invalid literal for int() with base 10: '808.666666666667' 
Run Code Online (Sandbox Code Playgroud)

csv文件的行如下:

2013-06-12 15:09:00,svcName,0,0,10,808.666666666667
Run Code Online (Sandbox Code Playgroud)

我试过int(808.666666666667)在python提示符下运行,它工作正常.

Ash*_*ary 29

从帮助int:

int(x,base = 10) - > int或long

如果x 不是数字或者给定了base,则x必须是表示给定基数中的整数文字的字符串或Unicode对象.

因此,对于任何用户'808.666666666667'来说都是无效的文字,请使用:intbase

>>> int(float('808.666666666667' ))
808
Run Code Online (Sandbox Code Playgroud)

int(808.666666666667) 运行正常,因为你传递一个浮点数,而不是字符串文字.