使用Python Boto3 AWS Lambda,S3 Key LastModified以两种不同的方式以两种类型返回

时间:2019-04-22 07:34:32

标签: python-3.x datetime amazon-s3 aws-lambda boto3

给定键的LastModified返回两种不同格式。

如果我将其存储在变量中或直接打印,它将给出以下格式:

2019-04-17 11:14:11+00:00

如果我尝试将其作为值存储在字典中,然后打印出来,它将以以下格式显示:

{'redshift_data_source/grid/load.csv': datetime.datetime(2019, 4, 17, 11, 14, 11, tzinfo=tzlocal())}

为什么格式如此不同?

第二,我的目的是将LastModified存储在文件中,并每天检查文件的LastModified是否已更改。不上传额外库的.zip怎么办?

我想要这样的东西(其中a应该来自我存储元数据的文件,b应该是最新文件的元数据读取:

a = datetime.datetime(2019, 4, 17, 11, 14, 11, tzinfo=tzlocal()) # yesterday
b = datetime.datetime(2019, 4, 18, 05, 53, 19, tzinfo=tzlocal()) # today

print(a < b) # True

1 个答案:

答案 0 :(得分:0)

使用从元数据中获得的值的字符串化解决了该问题:

str(datetime.datetime(2019, 4, 17, 11, 14, 11, tzinfo=tzlocal()))

上面的那行给了我:

2019-04-17 11:14:11+00:00

然后,为了进行比较,我不得不去除最后一部分,因为这不适合任何标准日期格式,所以我这样做了:

old = datetime.datetime.strptime(tables_dict[objects["Contents"][0]["Key"]][:19], '%Y-%m-%d %H:%M:%S')

然后做我的比较以继续逻辑。