【发布时间】:2018-04-09 00:26:48
【问题描述】:
在 Python 中,是否有一种好方法(以编程方式)从存在最近日期的数据子集中获取 ["win"]["amount"] 的值?
为了提供一个更具体的例子来说明我的问题,我想从 2018 年 4 月 2 日起将win 的amount (2018-04-02) 改为199.51。
这是源 JSON(我使用 json.loads 将其转换为 Python dict):
{
"numbers": [{
"lose": {
"amount": "122.50"
},
"win": {
"amount": "232.50"
},
"date": "2018-01-08"
}, {
"lose": {
"amount": "233.75"
},
"win": {
"amount": "216.25"
},
"date": "2018-03-05"
}, {
"lose": {
"amount": "123.50"
},
"win": {
"amount": "543.00"
},
"date": "2018-03-12"
}, {
"lose": {
"amount": "213.31"
},
"win": {
"amount": "253.33"
},
"date": "2018-03-19"
}, {
"lose": {
"amount": "217.00"
},
"win": {
"amount": "199.51"
},
"date": "2018-04-02"
}]
}
这似乎是一个非常简单的解决方案,但我无法完全确定该解决方案是什么,或者是否有 Pythonic 的方式来完成此操作。我确实编写了一些逻辑来计算最大日期,方法是将所有日期放入名为datelist 的列表中并执行max(datelist),但我不确定如何将其关联起来以获取["amount"]["win"]。
【问题讨论】:
-
你能证明自己任何努力解决这个问题吗?
-
我将客观地回答这个问题:是的,当我将日期放入
datelist并使用max()计算最近的日期时,如上所述。但是,我不完全确定如何将该计算与我想要得到的amount联系起来。我在想最好的办法是以某种方式按值而不是键搜索dict。我尝试过这样的事情,但无济于事(我认为因为日期在win和lose的“外部”)stackoverflow.com/questions/8023306/… -
@juanpa-arrivillaga (stackoverflow.com/a/49724192/9616920) 的解决方案在这里为我工作。
标签: python date dictionary nested max