Как сохранить результат из поисковых запросов в файлы json, используя python? - PullRequest
0 голосов
/ 31 октября 2018

Я недавно работаю над анализом Twitter и хочу сохранить результаты локального поиска в файлах .json.

Я делаю исторический поиск, используя "searchtweets", и потоковую передачу, используя "tweepy". Результат, который я получаю - это объекты, которые немного отличаются, но я думаю, что оба результата совместимы с .json.

Вот мой код (пример, я уже вошел в API):

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)

Это не работает. В общем, каждый запрос дает мне Resultset из множества объектов Tweet. И моя цель - сохранить эти объекты в файлы .json, используя python.

Буду очень признателен, если вы дадите мне несколько советов по этому поводу.

1 Ответ

0 голосов
/ 31 октября 2018

Вы можете использовать стандартную библиотеку json из python.

Чтение строки как json:

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

Преобразование JSON в строку:

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

С помощью этой функции вы можете сохранить на диске:

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 на "руке":

>>> 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

...