【问题标题】:How to fix datetime TypeError in python如何在 python 中修复 datetime TypeError
【发布时间】:2019-04-23 15:53:33
【问题描述】:

我正在从 AWS 中的 IAM 中提取证书信息并尝试格式化到期日期。但是,当尝试分割日期时,我收到错误 TypeError: 'datetime.datetime' object has no attribute 'getitem'

我确信可能有一个明显的解决方法,但我运气不佳。

conn = boto3.client('iam')
iamcerts = conn.list_server_certificates()
response = iamcerts['ServerCertificateMetadataList']
for i in response:
    year  = int(i['Expiration'][0:4])
    month = int(i['Expiration'][5:7])
    day = int(i['Expiration'][8:10])
    exp = date(year, month, day)
    daysleft = exp - today

文件“test2.py”,第 39 行,在 年份 = int(i['Expiration'][0:4]) TypeError: 'datetime.datetime' 对象没有属性 'getitem'

我想要做的是切掉年、月和日,并将它们分配给相应的变量,以便找出证书到期前还剩多少时间。

【问题讨论】:

  • 您正在尝试将日期时间对象视为字符串进行切片。您可以将其转换为字符串并以这种方式访问​​它,也可以使用您尝试提取的属性的访问方法,.year.day.month
  • i['Expiration'] 是错误消息所说的,datetime.datetime 的实例,不是 str。请咨询the documentation,了解如何从对象中提取所需数据。

标签: python datetime amazon-iam


【解决方案1】:

使用以下方法获得了预期的结果:

datestring = i['Expiration']
year  = int(datestring.year)
month = int(datestring.month)
day = int(datestring.day)

【讨论】:

    猜你喜欢
    • 2023-01-27
    • 1970-01-01
    • 2019-12-12
    • 2019-09-18
    • 2019-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多