如何在json文件中获得具有特定低级键的最高值的顶级键?

2024-05-19 19:29:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我的json文件如下所示:

{
    "One": {
        "action": "One",
        "delay": 1558834290.2415142,
        "seconds": 60,
        "score": 10,
        "delta": 1558828290.2415142,
        "grace_sec": 6060
    },
    "Two": {
        "action": "Two",
        "delay": 1558834292.6928985,
        "seconds": 60,
        "score": 9,
        "delta": 1558828292.6928985,
        "grace_sec": 6060
    }
}

我想要得到最高值为score的顶级键,所以在本例中我想要键One

我试过:

with open("streak.json", "r") as read_file:
                data = json.load(read_file)

highest = max(int(d['score'] for d in data.values()))

但我得到了TypeError:int()参数必须是字符串、类似字节的对象或数字,而不是“generator”


Tags: 文件jsonreaddataactionseconefile
2条回答

你可以这样写:

result = max(data, key=lambda k: data[k]["score"])

生成元组(内部\u值,外部\u键)以获取所需的值

max((int(value['score']), key) for key, value in data.items())

这应该计算为这个元组

(10, 'One') 

您可以根据需要进行处理

相关问题 更多 >