温馨提示:本文翻译自stackoverflow.com,查看原文请点击:python - Write a csv file after scrapping data from reddit
export-to-csv python reddit

python - 从Reddit抓取数据后写一个CSV文件

发布于 2020-05-14 01:45:16

我是编码新手,无法使用从Reddit抓取的数据编写CSV文件。

首先,我使用pushshift API抓取了数据,该API以列表格式返回了结果,如下图所示在此处输入图像描述

我想将该数据写入CVS文件以在R中运行内容分析。每一行(0000、00001等)都作为一行。但是,我无法运行用于组织列中每个参数的代码。例如,我希望这些列为submissions.author,submissions.num_comments,submissions.title等。

我运行了这段代码,但是结果与我要找的不完全一样

import csv
 with open('my_file.csv', 'w') as f:
    writer = csv.writer(f)
    with open('my_file.csv', 'w') as f:
      for row in lastest_submissions:
        row_text = ','.join(row) + '\n'  
        f.write(row_text)

结果看起来像这样在这里输入图像描述

我想要的是参数的名称是标题,参数答案是每个单元格中的内容。例如,对于参数'author':'bl00d',标题将为author,单元格中的内容将为bl00d(对于0000行)。

我很感谢我的帮助和暗示。另外,请告诉我是否应提供完整的代码

查看更多

提问者
PaComSc
被浏览
5
TechSavvy 2020-02-25 20:17

在您的情况下,因为您已经拥有字典列表形式的数据,我想您可能想尝试使用csv.Dictwriter()

示例代码段:

import csv
lstdc = [{'name':'Jack', 'age': 26}, 
        {'name':'John', 'age': 27},
        {'name':'Lisa', 'age': 36},
        {'name':'Adam', 'age': 16}]

fieldNames = list((lstdc[0]).keys())

with open('list_of_dict_to_csv.csv','w', newline='\n') as f:
    writer = csv.DictWriter(f, fieldNames)
    writer.writeheader()
    for val in lstdc:
        writer.writerow(val)

可以更换lstdclatest_submissionslist_of_dict_to_csv.csvmy_file.csv文件

用内置的writerows()替换列表词典的迭代

with open('list_of_dict_to_csv.csv','w', newline='\n') as f:
    writer = csv.DictWriter(f, fieldNames)
    writer.writeheader()
    writer.writerows(lstdc)

希望这可以帮助!