从reddit抓取数据后写一个csv文件

时间:2020-02-25 11:55:56

标签: python export-to-csv reddit

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

首先,我使用pushshift API抓取数据,该API以列表格式返回结果,如下图enter image description here

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

结果看起来像这样enter image description here

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

我很感谢我的帮助和暗示。另外,让我知道是否应该提供完整的代码

2 个答案:

答案 0 :(得分:0)

在您的情况下,因为您已经拥有字典列表形式的数据,我想您可能想尝试使用 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)

您可以将 lstdc 替换为 latest_submissions ,并将 list_of_dict_to_csv.csv 替换为 my_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)

希望这会有所帮助!

答案 1 :(得分:0)

这应该满足:

with open('my_file.csv', 'w') as f:
    writer = csv.writer(f)
    headers = lastest_submissions[0].keys()
    writer.writerow(headers)

    with open('my_file.csv', 'w') as f:
        for row in lastest_submissions:
            writer.writerow(row.values())