我正在使用Flask和Mongo DB开发一个项目,我想显示一些嵌入式文档。我并没有真正收到错误消息,但数据没有显示我想要的方式。目前,我的文档看起来像这样:
{ "_id" : ObjectId("590639009103ad05fd8555dc"),
"comments" : [ { "comment" :
"Hello World" } ],
"age" : 23,
"name" : "Mike" }
现在,我想显示数据,显示个人所说的名称和评论。我想要这样的事情:迈克,以下说:'Hello World'
我的代码如下所示:
thoughts = person.show()
for thought in thoughts:
print(thought["name"], "says the following:", thought["comments"])
show()方法如下所示:
def show(self):
thoughts = self.db.people.find()
return thoughts
现在,在大多数情况下,几乎所有东西都是我想要的。当我运行我的代码时,我得到了这个: 迈克说:“''评论':'Hello World'}
我需要做的是深入挖掘嵌入式文档以显示:
迈克,以下说:'Hello World'我尝试了以下内容:
for thought in thoughts:
print(thought["name"], "says the following:",
thought["comments.comment"])
它会收到以下错误消息:KeyError:'comments.comment'
然后我尝试了以下内容:
for thought in thoughts:
print(thought["name"], "says the following:", thought["comments"]
["comment"])
这给了我以下错误: TypeError:list indices必须是整数,而不是str
因此,我有点担心如何撤回每条评论。任何帮助,将不胜感激。
答案 0 :(得分:0)
thought["comments"]
是一个dicts列表。你想要列表中第一项的comment
字段,因此:
print(thought["comments"][0]["comment"])