TypeError: Object of type 'Redditor' is not JSON serializable
TypeError: Object of type 'Redditor' is not JSON serializable
我正在使用 reddit 爬虫并遇到以下错误。我是这个主题的新手,正在寻找克服错误的建议
import praw
import json
reddit = praw.Reddit(client_id= client_id, \
client_secret= client_secret, \
user_agent= user1, \
username= username, \
password= password)
def prawSubreddit(subName, lm):
print("Collecting from /r/{}...".format(subName))
subreddit = reddit.subreddit(subName)
submissions = subreddit.top(limit=lm)
redditData = []
for submission in submissions:
keys = ['Title', 'Txt', 'Author']
func = [submission.title, submission.selftext, submission.author]
redditData.append(dict(zip(keys,func)))
print("Finished Collecting.")
writeOutput("{}.txt".format(subName),redditData)
def writeOutput(fileName, data):
`outputFile = open(fileName, "w")
outputFile.write(json.dumps(data, sort_keys = True))
if __name__ == '__main__':
prawSubreddit('opiates', 5)
在此特定实例中,您可以通过将 submission.author
转换为带有 str(submission.author)
的字符串来解决问题。 json
库无法序列化 Redditor
对象(submission.author
是什么),但它可以序列化字符串。
因此,将 func = [submission.title, submission.selftext, submission.author]
替换为 func = [submission.title, submission.selftext, str(submission.author)]
。
我正在使用 reddit 爬虫并遇到以下错误。我是这个主题的新手,正在寻找克服错误的建议
import praw
import json
reddit = praw.Reddit(client_id= client_id, \
client_secret= client_secret, \
user_agent= user1, \
username= username, \
password= password)
def prawSubreddit(subName, lm):
print("Collecting from /r/{}...".format(subName))
subreddit = reddit.subreddit(subName)
submissions = subreddit.top(limit=lm)
redditData = []
for submission in submissions:
keys = ['Title', 'Txt', 'Author']
func = [submission.title, submission.selftext, submission.author]
redditData.append(dict(zip(keys,func)))
print("Finished Collecting.")
writeOutput("{}.txt".format(subName),redditData)
def writeOutput(fileName, data):
`outputFile = open(fileName, "w")
outputFile.write(json.dumps(data, sort_keys = True))
if __name__ == '__main__':
prawSubreddit('opiates', 5)
在此特定实例中,您可以通过将 submission.author
转换为带有 str(submission.author)
的字符串来解决问题。 json
库无法序列化 Redditor
对象(submission.author
是什么),但它可以序列化字符串。
因此,将 func = [submission.title, submission.selftext, submission.author]
替换为 func = [submission.title, submission.selftext, str(submission.author)]
。