从 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_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)
希望对您有所帮助!
这应该足够了:
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())
我是编码新手,我无法使用从 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_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)
希望对您有所帮助!
这应该足够了:
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())