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

Write a csv file after scraping data from reddit

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

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

我想将该数据写入 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)

结果是这样的enter image description here

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

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

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

希望对您有所帮助!

这应该足够了:

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())