我已经阅读了this answer,a second answer以及this answer关于将返回与循环混合,最后this answer关于返回,但它们不适用这里。
问题:我可以打印评论日期,但我似乎无法"返回"它恰当。最终,我需要将日期添加到列表中。
import datetime
def get_date(submission):
time = submission.created
return datetime.datetime.fromtimestamp(time)
authors_list = []
date_list = []
# Problem is here:
for comment in submission.comments.list():
authors_list.append(comment.author) # works fine!
date_list.append(get_date(comment)) # does not work
print authors_list
print date_list # does not work
我希望日期列表返回
[2013-06-22 12:28:54, 2014-06-22 12:28:54, 2015-06-22 12:28:54]
但我得到了:
[datetime.datetime(2013, 6, 22, 3, 4, 7), datetime.datetime(2013, 6, 22, 10, 33, 47)...]
我尝试过的事情:
尝试将日期保存到循环中的变量,但它不起作用:(我得到与上面相同的输出)
date_list = [ ]
for comment in submission.comments.list():
a_date = get_date(comment)
date_list.append(a_date)
print date_list
>>> [datetime.datetime(2013, 6, 22, 3, 4, 7) ...]
我该如何解决这个问题?任何人都能解释为什么会这样吗?谢谢!
上下文:如果有任何相关性,我使用praw
v5.2.0从Reddit API中提取数据。
答案 0 :(得分:1)
如果我理解正确,并且您只想存储datetime对象的字符串表示形式,请尝试:
# Problem is here:
for comment in submission.comments.list():
authors_list.append(comment.author) # works fine!
date_list.append(str(get_date(comment))) # should now work as expected
在您的原始代码中,您添加了列表中的datetime.datetime
对象并返回了该对象,显然您只是拥有一个字符串列表,因此将get_date()
包裹在str()
中电话实现了这一点。虽然稍后如果您仍需要在此函数之外仍需要访问datetime
对象功能,可能会更好。并在使用时转换为字符串。
答案 1 :(得分:0)
您可以将datatime.datatime对象转换为String,添加strftime以返回句子。
datetime.datetime.fromtimestamp(time).strftime("%Y-%m-%d %H:%M:%S")