如何通过tweepy将推文导出到txt或json?

时间:2017-09-12 14:59:40

标签: python json twitter tweepy

我使用tweepy捕获twitter数据,我想知道我是否有如何将推文导出到json,txt或csv文件? 我的代码:

{{1}}

我试过通过函数来​​做,但每次遇到错误。在txt文件中,它只写第一条推文和json,通知"它不是serelized"。 我的错误家伙在哪里?

1 个答案:

答案 0 :(得分:1)

如果您尝试将tweet写入JSON文件,json.dump将尝试将其转换为JSON格式。此过程称为serializationjson.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)