This code is supposed to get some information about a post like title, upvotes etc. And then write it in a CSV file. But when is run it I get this error:
Traceback (most recent call last):
File "main.py", line 71, in <module>
writer.writerow(data)
File "/usr/lib/python3.8/csv.py", line 154, in writerow
return self.writer.writerow(self._dict_to_list(rowdict))
File "/usr/lib/python3.8/csv.py", line 151, in <genexpr>
return (rowdict.get(key, self.restval) for key in self.fieldnames)
AttributeError: 'set' object has no attribute 'get'
And this is the code:
import praw
import random
import time
import csv
#from keep_Aliv import keep_alive
username = "XXXXXX"
#keep_alive()
print('AAAAAAA')
reddit = praw.Reddit(client_id="XXXXXX",
client_secret="XXXXXX",
user_agent="bot",
username=username,
password='XXXXXX')
subreddit = reddit.subreddit('all')
with open('pdata.csv', 'a') as f:
headers = [
'ID', 'Date_utc', 'Upvotes', 'Number of Comments', 'Subthread name'
]
writer = csv.DictWriter(f,
fieldnames=headers,
extrasaction='ignore',
dialect='excel')
writer.writeheader()
for post in subreddit.stream.submissions():
#print(post.title)
data = {
"ID": post.id,
"Date_utc": post.created_utc,
"Upvotes": post.ups,
"Number of comments": post.num_comments,
"Subthread name": post.title,
}
writer.writerow(data)
print(data)
ok, so how am I supposed to fix this? pls tell if some other information is required.
Thanks :)
(The main problem is now fixed and the compiler is not throwing an error now, but on the other hand the program isn't writing anything in the csv file. There isn't any error detected by the compiler but it's still not doing what it's supposed to. How do I fix that? btw the code in the post the working code)