随机NoneType对象不可调用错误

时间:2011-08-27 07:57:10

标签: python

最近我在我的申请中遇到了这个问题:

  

文件“main.py”,第31行,   在文件“app.pyc”,第205行,在运行中   TypeError:'NoneType'对象不可调用“

我的代码:

xml = EXML()
for pid, product in store.products.items():
    xml.addRow()
    xml.addCell((product['name']).encode('utf-8'), "String")
    xml.addCell((product['symbol']).encode('utf-8'), "String")
    xml.addCell((product['brand_name']).encode('utf-8'), "String") # line 205
    xml.addCell(str(product['price']), "String")

Python 2.7 32位

它是有线的,因为这在大约1000次迭代后出现,没有任何普遍的问题。 此应用程序扫描在线商店以获取当前价格。 首先,我认为在某个地方我错过了某些东西,因此有None.encode('utf-8'),但是没有,而且“。”。encode('utf-8')似乎有效。而且,我无法在测试网站上重现这个错误,只是有时会出现在与2500个产品一起努力工作的时候。 这个错误的其他可能来源是什么?

2 个答案:

答案 0 :(得分:1)

>>> None.encode
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'encode'
>>> None()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'NoneType' object is not callable

在给定的行上,您必须以某种方式设置调用None的两个函数之一。你确定它不是下一行,因为覆盖str是一个相当常见的错误。

答案 1 :(得分:0)

好的,解决了,它有点古怪,但是这个错误是由product['brand_name']导致的,有时是BeautifulSoup.tag(这次是标签),而不是我计划的BeautifulSoup.NavigableString。我仍然没有理解为什么和wtf?

Anywat,非常感谢您的回复。 :)