gpt4 book ai didi

python - 获取字典中缺失的日期

转载 作者:太空宇宙 更新时间:2023-11-03 21:00:40 25 4
gpt4 key购买 nike

我有下一本字典,我需要获取确定时间段之间缺失的时间段,换句话说,获取一个时间段的结束日期和下一个时间段的开始日期之间的时间段。

{'0': {'enddate': u'2017/05/25',
'startdate': u'2017/05/01'},
'1': {'enddate': u'2017/09/30',
'startdate': u'2017/06/01'},
'2': {'enddate': u'2018/03/31',
'startdate': u'2018/01/01'},
'3': {'enddate': u'2019/02/28',
'startdate': u'2018/05/01'}}

我不知道如何存储丢失的日期。我想存储它的最佳选择可能是在另一个字典中。所以我需要另一个字典,基于我发布的示例,如下所示:

{'0': {'enddate': u'2017/05/26',
'startdate': u'2017/05/31'},
'1': {'enddate': u'2017/12/31',
'startdate': u'2017/10/01'},
'2': {'enddate': u'2019/03/30',
'startdate': u'2018/04/01'}'

获取这个字典的函数很简单:

def periods(periods):

total_periods={}
for period in periods:
total_periods[period] = {}
for startdate in periods[period][0]:
total_periods[period]['startdate'] = startdate
for enddate in periods[period][-1]:
total_periods[period]['enddate'] = enddate

该函数的输入是另一个函数,该函数重新收集目录树中的所有日期。问题是我不知道该怎么做,我尝试了在这里找到的不同选项,但没有成功...我将不胜感激任何帮助或指南来开始...希望我解释正确且清楚。

致以诚挚的问候。

最佳答案

仅用一个 for 循环尝试一下:

from datetime import datetime, timedelta
result = {}

for k,v in d.items(): # d is your input times
n= str(int(k)+1)
if n in d:
result[f'{k}-{n}'] = {'start':datetime.strftime(datetime.strptime(d[k]['enddate'], '%Y/%m/%d')+timedelta(days=1),'%Y/%m/%d'), 'end':datetime.strftime(datetime.strptime(d[n]['startdate'], '%Y/%m/%d')-timedelta(days=1),'%Y/%m/%d')}

结果将是:

{'0-1': {'start': '2017/05/26', 'end': '2017/05/31'},
'1-2': {'start': '2017/10/01', 'end': '2017/12/31'},
'2-3': {'start': '2018/04/01', 'end': '2018/04/30'}}

如果您不使用 Python3.6 或更高版本,请将 f'{k}-{n}' 更改为 '{}-{}'。格式(k,n)

关于python - 获取字典中缺失的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55723054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com