PRAW:Python可以打印Reddit注释变量但不返回它

时间:2017-10-30 09:25:12

标签: python python-2.7 reddit praw

我已经阅读了this answera 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中提取数据。

2 个答案:

答案 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")