如何从Python的Datetime对象中查找工作日名称?

Vip*_*ash 1 python datetime dictionary python-3.x keyerror

所以我刚开始学习Python并尝试制作一个程序来告诉你某一天的具体日期。我发现datetime并尝试使用它,但问题是即使密钥存在,我也会收到密钥错误。

这是我的代码:

import datetime

def day_finder(dd,mm,yy):

    tags = { '1' : 'Monday' ,'2' : 'Tuesday' ,'3' : 'Wednesday' ,'4' : 'Thursday' ,'5' : 'Friday' ,'6' : 'Saturday' ,'7' : 'Sunday' }
    return tags[int(datetime.datetime(yy,mm,dd).isoweekday())]


d = int(input("Enter a date"))
m = int(input("Enter a month"))
y = int(input("Enter a year"))

print (day_finder(d,m,y))
Run Code Online (Sandbox Code Playgroud)

Moi*_*dri 6

您正在搜索int工作日数字,但您应该检查字符串,因为字典中的键是str类型。例如:

>>> tags = { '1' : 'Monday' ,'2' : 'Tuesday' ,'3' : 'Wednesday' ,'4' : 'Thursday' ,'5' : 'Friday' ,'6' : 'Saturday' ,'7' : 'Sunday' }

>>> import datetime
>>> tags[str(datetime.datetime(1990,03,28).isoweekday())]
'Wednesday'
Run Code Online (Sandbox Code Playgroud)

但是,您不需要dict对象来根据关键日期编号获取工作日名称。.strftime('%A')您可以通过在对象上使用以下方式获得所需的结果datetime

>>> datetime.datetime(1990,03,28).strftime("%A")
'Wednesday'
Run Code Online (Sandbox Code Playgroud)