在一个 mongodb 请求之后,我得到一个这样的文档:
a = [{"name": 'Aspirin', "Dates": [{'Qty': 50, 'Date':'2019-07-09'}, {'Qty': 10, 'Date': '2020-05-19'}]}]
我想检索与日期2019-07-09相关的数量50。这是我进行的方式:
old_qte = None
for i in a:
for key, value in i.items():
if value == 'Aspirin':
for k, v in i.items():
if k == 'Dates':
for z in v:
for x, y in z.items():
if y == '2019-07-09':
old_qte = z
print(old_qte['Qty'], old_qte)
它工作得很好,但看起来很复杂。有人会有更简单、更易读的方法吗?
请您参考如下方法:
这将使您一行一行到达那里:
next(date for date in a[0]['Dates'] if date['Date'] == '2019-07-09')['Qty']
#50
将只获取第一个满足条件的并从中获取Qty
。