Python PRAW:使用熊猫或其他工具导出到数据表;接受建议

Python PRAW:使用熊猫或其他工具导出到数据表;接受建议,python,pandas,praw,Python,Pandas,Praw,下面的代码使用python脚本,调用praw并从reddit页面返回文本。我现在想: 能够得到更多的评论,因为它只输出少量。 我想查看评论的响应树。 我想将数据的内容导出到表中 我想将此导出到.csv 我是新手,所以任何建议都是有帮助的。谢谢 import praw import datetime as dt reddit = praw.Reddit(client_id=,agent_id=,etc. ) submission = reddit.submission(id='7v8ob2')

下面的代码使用python脚本,调用praw并从reddit页面返回文本。我现在想:

能够得到更多的评论,因为它只输出少量。 我想查看评论的响应树。 我想将数据的内容导出到表中 我想将此导出到.csv

我是新手,所以任何建议都是有帮助的。谢谢

import praw
import datetime as dt

reddit = praw.Reddit(client_id=,agent_id=,etc. )

submission = reddit.submission(id='7v8ob2')

comments = submission.comments

for comment in comments:
    print(20*'-')
    print('Parent ID:', comment.parent)
    print('Comment ID:', comment.id)
    print('Score:', comment.score)
    print('Created:', comment.created)
    print('Body:', comment.body)
编辑: 假设您无法一次展开注释生成器中所有对象的属性,则必须迭代所有注释并展开每个注释以检索其属性

我将所有数据放在一个列表中,因为要引用:

concat(因此是append)生成数据的完整副本,并且不断重用此函数可以产生显著的性能影响。如果需要对多个数据集使用该操作,请使用列表


提前将所有数据放入列表(使用列表理解)可避免此性能问题。

Hi@ec2604!谢谢你的回复。我确实需要一些更多的上下文我运行了上面附加的代码并得到了以下错误:UnicodeEncodeError:“ascii”编解码器无法对位置35处的字符u'\u201c'进行编码:序号不在范围内(128)我仍然对如何使用与上面的脚本一起收集的数据感到困惑。你给我的评论中的代码将如何在我已有的脚本中运行。您能告诉我如何将它们合并在一起,使它们作为一个程序运行吗?@Swan关于您的编码错误,它有点特定于您正在运行的python版本,但这似乎是一个编码问题。我会尝试:df.to_csv('path_to_save_to.csv',encoding='utf-8')您可能有一个无法编码为ascii的字符。关于在哪里合并上面的代码段……我的意思是让它替换OP问题中的for循环。@ec2604非常感谢!我终于成功了!这是什么代码?这是问题的解决方案还是补充?通过展示为什么这是一个很好的问题解决方案,A将极大地提高它的长期价值,并将使它对未来有其他类似问题的读者更有用。请在您的回答中添加一些解释,包括您所做的假设。
import praw
import datetime as dt
import pandas as pd
from pandas import DataFrame

reddit = praw.Reddit(client_id=,agent_id=,etc.)

submission = reddit.submission(id='7v8ob2')

comments = submission.comments

df_rows = [[comment.parent, comment.id, comment.score, comment.created, comment.body] for comment in comments]
df = pd.DataFrame(df_rows, columns=['Parent ID', 'Comment ID', 'Score', 'Created', 'Body'])

df.to_csv('path_to_save_to.csv')
import praw
import datetime as dt
import pandas as pd
from pandas import DataFrame

reddit = praw.Reddit(client_id=,agent_id=,etc.)

submission = reddit.submission(id='7v8ob2')

comments = submission.comments

df_rows = [[comment.parent, comment.id, comment.score, comment.created, comment.body] for comment in comments]
df = pd.DataFrame(df_rows, columns=['Parent ID', 'Comment ID', 'Score', 'Created', 'Body'])

df.to_csv('path_to_save_to.csv')