将字典列表中的秒数转换为小时数,python

convert seconds in list of dictionaries into hours, python

我正在尝试使用 python 中的 DateTime 包将我的词典列表中的秒数转换为小时数。 Eg.g 而不是 'Duration':745200(秒)我想要 'Duration':207:00:00(小时:分钟:秒)。有人可以帮助我实现这一目标吗? 谢谢!

id_duration = 
[{'Id': 44, 'Duration': 745200},
 {'Id': 45, 'Duration': 259200},
 {'Id': 58, 'Duration': 21600},
 {'Id': 61, 'Duration': 597600}]

如果您只需要几个小时,您可以尝试不使用 DateTime 包的简单方法:

[{**x, "Duration": x["Duration"] // 3600} for x in id_duration]

首先从导入包开始

import datetime

然后让我们为它定义一个函数,使用datetime.timedelta

def convert_duration(duration_list):
    for i in duration_list:
        i['Duration'] = datetime.timedelta(seconds=i['Duration'])
        i['Duration'] = i['Duration'].total_seconds()
        i['Duration'] = i['Duration'] / 3600
    return duration_list

现在让我们使用您提供的示例进行测试

id_duration = [{'Id': 44, 'Duration': 745200}, {'Id': 45, 'Duration': 259200}, {'Id': 58, 'Duration': 21600}, {'Id': 61, 'Duration': 597600}]

print(convert_duration(id_duration))

[Out]: [{'Id': 44, 'Duration': 207.0}, {'Id': 45, 'Duration': 72.0}, {'Id': 58, 'Duration': 6.0}, {'Id': 61, 'Duration': 166.0}]