python迭代mongo嵌套对象列表

时间:2018-04-16 09:41:09

标签: mongodb python-3.x

我使用查询

从mongodb获取嵌套记录
@classmethod
def fetch_links(self, web_id):
cursor = self.db.websites.find({"_id": ObjectId(web_id)}, {"links": 1})
    results = list(cursor)
    return results

我将此功能称为:

old_links = Signatures.fetch_links(web_id)
    print(old_links)

和gettin结果为:

[{
'_id': ObjectId('5ac5efd6a37efa4c0e28f5aa'),
'links': [{
    'type': 'np',
    'link_id': 'quotes-1',
    'link': '/'
}, {
    'type': 'np',
    'link_id': 'quotes-2',
    'link': '/login'
},  {
    'type': 'np',
    'link_id': 'redcarpetsupport-1',
    'link': 'AR/index.html'
}, {
    'type': 'np',
    'link_id': 'redcarpetsupport-3',
    'link': 'services.html'
}]

}]

现在我想访问:

print(old_links['link']), old_links(links['link_id']) and print(old_links['type'])

帮助表示赞赏。提前谢谢。

1 个答案:

答案 0 :(得分:0)

我通过convertine list将其修复为数组并在内部循环两次for。我不知道它是好还是不好。

import numpy as np

old_links = Signatures.fetch_level1_links(web_id)
link_arr = np.array(old_links)

for item in link_arr:
    #print(item['links'])
    for link in item['links']:
        print(link['type'])