【发布时间】:2021-10-18 13:12:43
【问题描述】:
我想在 Python 的对象列表中找到对象的最小元素(通过days 属性),到目前为止我有这个代码:
from operator import attrgetter
lists = json.loads("[" + data + "]")
print(lists)
maintenance_cycle = min(lists,key=lambda r: r.days)
- 控制台输出:
[{'type': 'runtime', 'days': 1}]
- 错误:
'dict' object has no attribute 'days'
【问题讨论】:
-
使用
min(lists, key=lambda r: r['days'])或者min(lists, key=lambda r: r.get('days'))怎么样。 -
@GhostOps,你确定吗?你的第一个建议听起来不错。
maintenance_cycle = min(lists,key=lambda r: r['days']) -
@StéphaneGRILLON 我知道不是,现在我失去了编辑该评论的时间,所以让我删除评论,JonSG 得到了你想要的
-
@StéphaneGRILLON 您想要一个专门使用
operator模块的解决方案吗? -
@GhostOps 如果您给出一个答案,因为看起来您可能从一开始就拥有所需的东西,我将删除我的 cmets。
标签: json python-3.x object attributes