我是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 = {'website': host, '_id': doc['_id'], 'event': 'website_up', 'alert_id': '',类型错误:列表索引必须是整数或切片,而不是 str">
如果将警报条目更改为如下所示的列表,我会收到相同的错误。
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 中。我正在使用Scrapy 1.5和Python 3.5。有人可以帮我吗?提前谢谢。
您收到此错误是因为"doc"的类型是数组,而不是字典。 所以你应该以这种形式获取文档['_id']
doc[0]['_id']
或者您可以循环访问文档。