Записать CSV-файл после удаления данных из Reddit - PullRequest
0 голосов
/ 25 февраля 2020

Я новичок в кодировании и не могу написать файл CSV с данными, которые я удалил из Reddit.

Сначала я удалил данные с помощью API pushshift, который вернул результаты в виде списка, подобном следующему изображению введите описание изображения здесь

Я хочу записать эти данные в файл CVS для запуска анализа содержимого в R. С каждой строкой (0000, 00001 и т. д. c) в виде строки. Однако я не смог запустить код, который организует каждый параметр в столбце. Например, я хочу, чтобы столбцы были 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).

Я ценю помощь и подсказки, которые я мог получить. Кроме того, дайте мне знать, если я должен предоставить полный код

Ответы [ 2 ]

0 голосов
/ 25 февраля 2020

Этого должно хватить:

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())
0 голосов
/ 25 февраля 2020

В вашем случае, поскольку у вас уже есть данные в виде списка словарей, я думаю, вы можете попробовать использовать 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)

вы можете заменить lstd c на 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)

Надеюсь, это поможет!

...