从API响应中,我将日期存储在列表中。我想使用日期值列表按当前日期计算年龄。日期将以字符串类型出现在列表中。这就是为什么我得到下面的错误。
日期格式-(YYYY-MM-DD)
TypeError:“str”对象不能解释为整数
在这里,我想做的是:
name= ['Joes','Piyush','Marcus']
birthdate=['2000/02/01','2001/12/02','1999/04/02']
from datetime import date
today = date.today()
for n, bday in zip(name, birthdate):
age = (today - date(bday)).years
print("Student ", n, "age is ", age, "years old.")
2条答案
按热度按时间wh6knrhe1#
您遇到的错误是因为您试图从日期对象(today)中减去字符串(bday)。要使用日期列表计算年龄,需要在执行减法之前将字符串转换为日期对象。
下面是处理转换并正确计算年龄的修改后的代码:
pobjuy322#
学生1年龄为23岁零118天。
学生2年龄为21岁零178天。
学生3年龄为24岁零58天。
1.使用strptime()函数将每个字符串date转换为datetime对象。* *' %Y/%m/% d'**参数指定字符串日期的预期格式。
1.在datetime对象上调用.date()方法,只提取日期部分,丢弃时间信息。
1.最后计算年龄并打印出来