Python 如何在json文件中获取具有特定较低级别键的最高值的顶级键?
我的json文件如下所示:Python 如何在json文件中获取具有特定较低级别键的最高值的顶级键?,python,Python,我的json文件如下所示: { "One": { "action": "One", "delay": 1558834290.2415142, "seconds": 60, "score": 10, "delta": 1558828290.2415142, "grace_sec": 6060 }, "Two": { "action": "Two",
{
"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
的顶级键,因此在本例中,我希望使用keyOne
我试过:
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()参数必须是字符串、类似字节的对象或数字,而不是“生成器”生成元组(内部值、外部键)才能获得所需的值
max((int(value['score']), key) for key, value in data.items())
这应该计算到此元组
(10, 'One')
您可以根据需要进行处理。您可以这样写:
result = max(data, key=lambda k: data[k]["score"])