我写了一个函数,它将返回几个字典。 例如:
def func()
return c # <---- nested dictionary
if __name__ == "__main__":
ans = func()
print ans
如果我打印ans:
{u'ok': 1.0, u'result': [{u'price': 129.7, u'_id': datetime.datetime(2015, 2, 23, 9, 32)}, {u'price': 129.78, u'_id': datetime.datetime(2015, 2, 23, 9, 33)},
print ans.get('_id')
如果我打印这个,结果是无。
我怎样才能获得_id
?
答案 0 :(得分:2)
您可以使用列表理解。
In [19]: ans = {u'ok': 1.0, u'result': [{u'price': 129.7, u'_id': datetime.datetime(2015, 2, 23, 9, 32)}, {u'price': 129.78, u'_id': datetime.datetime(2015, 2, 23, 9, 33)}]}
In [24]: [i['_id'] for i in ans['result']]
Out[24]: [datetime.datetime(2015, 2, 23, 9, 32), datetime.datetime(2015, 2, 23, 9, 33)]
In [25]: [i.get('_id') for i in ans['result']]
Out[25]: [datetime.datetime(2015, 2, 23, 9, 32), datetime.datetime(2015, 2, 23, 9, 33)]
答案 1 :(得分:0)
for i in ans['result']:
print i['_id']
答案 2 :(得分:0)
从查看跟踪看来,c似乎是包含各种其他字典的字典。
print ans["result"][0]["_id"]
应该返回你想要的值。
答案 3 :(得分:0)
func()
实际上是返回嵌套词典。仔细查看您的印刷品告诉您的内容。
所以ans = func()
是一个嵌套字典:
{u'ok': 1.0, u'result': [{u'price': 129.7, u'_id': datetime.datetime(2015, 2, 23, 9, 32)}, {u'price': 129.78, u'_id': datetime.datetime(2015, 2, 23, 9, 33)},
因此,[&#39;结果&#39;]本身就是另一个词典,或者显然是一个包含词典的列表。