我使用tweepy捕获twitter数据,我想知道我是否有如何将推文导出到json,txt或csv文件? 我的代码:
{{1}}
我试过通过函数来做,但每次遇到错误。在txt文件中,它只写第一条推文和json,通知"它不是serelized"。 我的错误家伙在哪里?
答案 0 :(得分:1)
如果您尝试将tweet
写入JSON文件,json.dump
将尝试将其转换为JSON格式。此过程称为serialization。 json.dump
仅支持默认编码器中的一小组类型,您可以阅读in the Python documentation。由于tweep用于表示Tweet的类不是这些类型的一部分,json
模块会引发您提到的异常。
作为一种解决方案,您可以序列化包含有关推文的各种数据的字典,这是一个例子:
def tweet_to_json(tweet):
tweet_dict = {
"text": tweet.text,
"author_name": tweet.user.screen_name
}
with open('tweet.json', 'w+') as f:
json.dump(tweet_dict, f)
请注意,使用附加模式和JSON文件通常不是一个好主意。您可以使用JSON列表。 This reply to another question可能对此有所帮助。
编辑:以下是保存JSON列表的示例:
result = []
for tweet in api.user_timeline(id=name, count=tweetCount):
result.append({
'text': tweet.text,
'author_name': tweet.user.screen_name
})
with open('tweet.json', 'w+') as f:
json.dump(result, f)