Data={
0:{
'date': "12 jul 2021",
'country': "xyz",
'country_id': "0",
'event_dict': {
0: {
'event1': "T",
'event_no': "45",
'event_id': "01"
},
1: {
'event1': "C",
'event_no': "32",
'event_id': "T",
},
2: {
'event1': "B",
'event_no': "11",
'event_id': "s",
},
3: {
'event1': "A",
'event_no': "0",
'event_id':"p",
}
},
},
1:{
'date1': "20th jun 2022",
'country': "",
'country_id': "1",
'event_dict': {
0:{
'event1': "no",
'event_no': "23",
'event_id':"abc"
},
1: {
'event1': "yes",
'event_no': "8",
'event_id':"def",
},
2: {
'event1': "false",
'event_no': "",
'event_id': "ghi",
},
3: {
'event1': "NA",
'event_no': "9",
'event_id': "jkl",
}
},
},
}
res = Data[0]['date']
print(res)
# output is 12 jul 2021
res2 = Data[1]['date1']
print(res2)
# output is 20th jun 2022我想得到这两个日期的周差,我已经存储在两个不同的变量。怎么做?
发布于 2022-07-22 11:16:03
首先,您需要使用每个日期的特定格式将string转换为datetime,然后计算不同,如下所示。
from datetime import datetime
d1 = datetime.strptime(Data[0]['date'], '%d %b %Y') # date is 12 jul 2021
d2 = datetime.strptime(Data[1]['date1'], '%dth %b %Y') # date is 20th jun 2022
diff = d2 - d1
print(f'days : {diff.days}')
print(f'weeks : {diff.days//7}')days : 343
weeks : 49其他格式的日期,如果您需要使用,也许您的日期有不同的格式:(从这里:Ref)
%d是日数(2位,前缀为前导0‘s)如果necessary)%m是月份号(2位,前缀为前导0’s如果necessary)%b是月份缩写(3 letters)%B是全月的月份名称,(letters)%y是年号缩写)(最后2 digits)%Y是年号(4位))
发布于 2022-07-22 11:15:56
您需要首先将日期转换为date对象。现在它们是弦乐。您可以通过使用类似于以下内容的方法来做到这一点:
from datetime import datetime
date_time_str = '20th june 2022'
date_time_obj = datetime.strptime(date_time_str, '%dth %B %Y')
print ("The type of the date is now", type(date_time_obj))
print ("The date is", date_time_obj)一旦你这样做了,你可以减去这两个日期,以得到他们之间的日子。然后,您只需将天数差异转换为一周差。
发布于 2022-07-22 11:19:24
res2 = res2.replace("th", "") # sanitize date string.
res = datetime.strptime(res, "%d %b %Y") # parse first date string to date
res2=datetime.strptime(res2, "%d %b %Y") # parse second date string to date
print (res2-res) # date substraction gives you days.
dayDiff = (res2-res).days # get the days
print (dayDiff/7) # and divide by 7 to get weekshttps://stackoverflow.com/questions/73079298
复制相似问题