ValueError:无效文字为int()以10为底:'MSIE'
问题描述:
当我在只有HTTP标头的大文件上运行我的Python代码后,它给了我上述错误。任何想法是什么意思?ValueError:无效文字为int()以10为底:'MSIE'
这里是一块代码:
users = output.split(' ')[1]
accesses = output.split(' ')[3]
ave_accesses = int(accesses)/int(users)
基本上“用户”是谁访问过一个网站,并“访问”的访问由用户到该网站的用户总数。 'ave_accesses'给出了普通用户访问该网站的次数。我希望这足以澄清事情,如果不是我可以解释更多。
非常感谢,Adia。
答
这意味着您正在尝试将字符串转换为整数,并且该字符串的值为'MSIE'。回溯将在该错误和行号附近具有文件名(例如/my/module.py:123)。打开文件并转到发生错误的行,您应该看到使用参数调用int()
。该参数可能应该是字符串形式的数字,但事实并非如此。你可能让你的解析代码有点不对,而且字段混淆了。
要跟踪此问题,请使用代码周围的print
语句查看未按预期工作的情况。您也可以使用pdb
。
答
我认为,你的头输出是乱码。显然,它正在寻找一个数字,它找到一个字符串MSIE(可能是User-Agent的值)。
“我的Python代码”? “只有HTTP标头的大文件”?没有追踪。没有代码。我们没有线索。 – 2010-12-16 12:05:50
我在上面的帖子中做了一些修改。告诉我如果不够。 – Adia 2010-12-16 12:14:14
还不够。你应该发布一个示例数据。旁白评论:你不需要调用'split'两次。 'splito = output.split();用户= splito [1]; accesscesses = splito [3]'。 – khachik 2010-12-16 12:19:35