python列表-方法而不是字符串

python列表-方法而不是字符串,python,arrays,amazon-web-services,boto,Python,Arrays,Amazon Web Services,Boto,我正在通过python和boto玩AWS。我正在尝试从AWS bucket中获取钥匙的修改日期。之后,我将日期解析为“常规”日期格式,并尝试将每个值添加到列表中 不幸的是,当我将值附加到列表并尝试打印结果时,我得到的是datetime函数,而不是带有日期的字符串。 代码如下所示: import boto s3 = boto.connect_s3() bucket = s3.get_bucket('mybucket') keys = bucket.list keys_latest_modified

我正在通过python和boto玩AWS。我正在尝试从AWS bucket中获取钥匙的修改日期。之后,我将日期解析为“常规”日期格式,并尝试将每个值添加到列表中

不幸的是,当我将值附加到列表并尝试打印结果时,我得到的是
datetime
函数,而不是带有日期的字符串。 代码如下所示:

import boto
s3 = boto.connect_s3()
bucket = s3.get_bucket('mybucket')
keys = bucket.list
keys_latest_modified_date_list = []

for key in keys:
    key_latest_modified_date = boto.utils.parse_ts(key.last_modified)
    keys_latest_modified_date_list.append(key_latest_modified_date)
    print key_latest_modified_date
print keys_latest_modified_date_list
[datetime.datetime(2015, 2, 18, 10, 11, 58)]
第一次
打印
返回正确的日期:

2015-02-18 10:11:58
而second
print
给了我这样的信息:

import boto
s3 = boto.connect_s3()
bucket = s3.get_bucket('mybucket')
keys = bucket.list
keys_latest_modified_date_list = []

for key in keys:
    key_latest_modified_date = boto.utils.parse_ts(key.last_modified)
    keys_latest_modified_date_list.append(key_latest_modified_date)
    print key_latest_modified_date
print keys_latest_modified_date_list
[datetime.datetime(2015, 2, 18, 10, 11, 58)]

是否有人知道如何从列表中打印值,比如第一个
print
,而不是我从第二个列表中得到的值?

您会被
str()
输出的
datetime
对象及其表示法弄糊涂:

>>> import datetime
>>> dt = datetime.datetime(2015, 2, 18, 10, 11, 58)
>>> dt
datetime.datetime(2015, 2, 18, 10, 11, 58)
>>> str(dt)
'2015-02-18 10:11:58'
>>> repr(dt)
'datetime.datetime(2015, 2, 18, 10, 11, 58)'
print
对打印的对象调用
str
,但列表和其他容器始终使用
repr()
显示其内容

您必须使用一些字符串格式来处理列表:

print ', '.join(map(str, keys_latest_modified_date_list))
将打印转换为字符串的日期时间对象的逗号分隔列表:

>>> keys_latest_modified_date_list = [dt, dt]
>>> keys_latest_modified_date_list
[datetime.datetime(2015, 2, 18, 10, 11, 58), datetime.datetime(2015, 2, 18, 10, 11, 58)]
>>> ', '.join(map(str, keys_latest_modified_date_list))
'2015-02-18 10:11:58, 2015-02-18 10:11:58'
>>> print ', '.join(map(str, keys_latest_modified_date_list))
2015-02-18 10:11:58, 2015-02-18 10:11:58

看起来不错。但是否有可能将“常规”字符串添加到列表中?我想对列表进行更多操作(即排序),而“常规”字符串将更有用。打印列表的内容不是我的主要目标。提前谢谢。@Piotr:不,没有。列表对象不打算用作最终用户演示文稿。如果您需要特定的格式,您需要自己显式格式化。@Piotr:当您需要显示数据时,您可以将对象转换为字符串。如果您正在对
datetime
对象进行排序或其他操作,请保留这些对象,不要将它们转换为字符串。@MartijnPieters请您在这里说一句话,我将不胜感激