将数据保存到mongoDB类型错误:列表索引必须是整数或切片,而不是str



我是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']

或者您可以循环访问文档。

相关内容

  • 没有找到相关文章

最新更新