如何从Python';Datetime对象是什么?
所以我刚开始学习python,并尝试制作一个程序,告诉你某一天的每一天。我发现了如何从Python';Datetime对象是什么?,python,python-3.x,datetime,dictionary,keyerror,Python,Python 3.x,Datetime,Dictionary,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'
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))
您正在搜索一个
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'
但是,您不需要使用dict
对象来获取基于关键天数的工作日名称。您可以通过在datetime
对象上使用.strftime('%A')
获得所需的结果,如下所示:
>>> datetime.datetime(1990,03,28).strftime("%A")
'Wednesday'
标记
对象中的键
是str
值,但是您将它们转换为int
(它们已经存在),然后尝试通过int
值访问值,这就是为什么您会得到KeyError
修复方法是将它们转换为str
,一切都会正常工作
return tags[str(datetime.datetime(yy,mm,dd).isoweekday())]
isoweekday
返回一个整数。你字典的键是字符串
您不需要对结果调用
int
,因为它已经是一个int-可以将其替换为str
,或者使用整数作为dict的键。在查找时尝试字符串而不是整数
return tags[str(datetime.datetime(yy,mm,dd).isoweekday())]
您正在将一天中的一周转换为int,其中字典的键显然是字符串。这就是为什么error最简单的方法是只使用input()而不是int(input())如果我使用input(),它将给出typeerror如果我删除dict中的“”它将把它们转换成整数?