我是Python / Scrapy的新手,面临TypeError问题。我想将抓取器解析数据作为对象存储到MongoDB。这是我的代码。
alertentry = {'website': host, '_id': doc['_id'], 'event': 'website_up', 'alert_id': '',
'main_website_id': doc['main_website_id']}
Alerts.add(alertentry, 'Website Up:' + doc[0]['website_url'], 2)
从上面的代码我得到" alertentry = {'网站':主持人,' _id':doc [' _id'],' event':'' ; website_up',' alert_id':'', TypeError:list indices必须是整数或切片,而不是str "
如果将alertentry更改为如下所示,我收到同样的错误。
alertentry = [host, doc['_id'], 'website_up', '', doc['main_website_id']]
Alerts.add(alertentry, 'Website Up:' + doc[0]['website_url'], 2)
我也尝试过:
alertentry = [self.host, self.doc['_id'], 'website_up', '', self.doc['main_website_id']]
但没有运气。 这里Alerts.add()函数将数据插入MongoDB。 我在Python 3.5中使用Scrapy 1.5。 请有人帮帮我。提前谢谢。
答案 0 :(得分:0)
您收到此错误,因为'doc'的类型是数组,而不是字典。所以你应该以这种形式获得doc ['_ id']
doc[0]['_id']
或者您可以循环使用文档。