2017-04-30 15 views
0

私はFlaskとMongo DBを使ってプロジェクトを進めており、埋め込みドキュメントをいくつか表示したいと思います。私は本当にエラーメッセージを受け取っていませんが、データは私がそれをどのようにして表示されていません。現在、私の文書は次のようになっています:PythonでMongo DBに埋め込みデータを表示

{ "_id" : ObjectId("590639009103ad05fd8555dc"), 
"comments" : [ { "comment" : 
"Hello World" } ], 
"age" : 23, 
"name" : "Mike" } 

ここで、個人が言った名前とコメントを示すデータを表示します。私はこのような何かしたい:、マイクを次の言葉:

def show(self): 
    thoughts = self.db.people.find() 
    return thoughts 

:show()メソッドは、次のようになります

thoughts = person.show() 
for thought in thoughts: 
    print(thought["name"], "says the following:", thought["comments"]) 

:「こんにちは世界

私のコードは次のようになりますほとんどの場合、ほとんどすべてが、私がそれを望む方法で動作します。私は私のコードを実行すると、私はこれを取得:{「コメント」:「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:リストインデックスは、このように

をstrがない、整数でなければならない、私はそれぞれのコメントを引き出すためにどのようにやや立ち往生しています。どんな助けもありがとう。

答えて

0

thought["comments"]はdictsのリストです。したがって、リストの最初の項目のcommentフィールドが必要です。

print(thought["comments"][0]["comment"]) 
+0

これは機能します!ありがとうございました!私はそれにとても近いものを試しました! –

関連する問題