如何使用python将searchtweets的结果保存到json文件中?

How can I save the result from searchtweets into json files using python?

我最近正致力于推特分析,并希望将本地Twitter搜索的结果保存到.json文件中。

我正在使用"searchtweets"进行历史搜索,使用"tweepy"进行流式传输。 我得到的结果是略有不同的对象,但我认为这两个结果都与.json兼容。

这是我的代码(示例,我已经登录到API):

1
2
3
4
5
new_tweets = API.user_timeline(screen_name='huliangw20', count=20,
tweet_mode='extended')

with open('test_tweets_v2.json', 'w',encoding='utf-8') as outfile:
    outfile.write(new_tweets)

这是行不通的。 通常,每个查询都为我提供了许多Tweet对象的Resultset。 我的目标是使用python将这些对象保存到.json文件中。

如果你能给我一些建议,真的很感激。


您可以使用python中的json标准库。

读取字符串为json:

1
2
3
>>> import json
>>> json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])
'["foo", {"bar": ["baz", null, 1.0, 2]}]'

将json转换为字符串:

1
2
3
>>> import json
>>print(json.dumps({"c": 0,"b": 0,"a": 0}, sort_keys=True))
{"a": 0,"b": 0,"c": 0}

使用此功能,您可以保存在磁盘上:

1
2
3
4
5
6
7
8
9
def writeToJSONFile(path, fileName, data):
    try:
        filePathNameWExt = path + fileName
        with open(filePathNameWExt, 'w') as fp:
            json.dump(data, fp)
    except Exception as e:
        if(not quiet):
            print"writeToJSONFile exception"
            print e

最后在"手"上生成一个json:

1
2
3
4
5
>>> jsonToSave = {}
>>> jsonToSave['id'] = id
>>> metaJson = {}
>>> metaJson['version'] = VERSION
>>> jsonToSave['metadata'] = metaJson

更多信息:https://docs.python.org/3/library/json.html
更多信息:https://docs.python.org/2/library/json.html