сохранить результат метода lookup_users в json файл - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь получить метаданные пользователя, используя tweepy по экранному имени пользователя, и сохранить результат как файл JSON. Вот мой код


import tweepy
from tweepy import Stream
from tweepy.streaming import StreamListener
from tweepy import OAuthHandler
CONSUMER_KEY = 'xxx'
CONSUMER_SECRET = 'xxx'
ACCESS_KEY = 'xxx'
ACCESS_SECRET = 'xxx'
auth = OAuthHandler(CONSUMER_KEY,CONSUMER_SECRET)
api = tweepy.API(auth)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
class TweetListener(StreamListener):
    # A listener handles tweets are the received from the stream.
    #This is a basic listener that just prints received tweets to standard output

    def on_data(self, data):
        print (data)
        return True

    def on_error(self, status):
        print (status)
#search
api = tweepy.API(auth)
twitterStream = Stream(auth,TweetListener())

#name is list contains user screen names
test = api.lookup_users(screen_names= name)
for user in test:
    print (user.screen_name)
    print (user.name)
    print (user.description)
    print (user.followers_count)
    print (user.statuses_count)

мой код работает без ошибок, и, как вы можете видеть, я печатаю данные, но я намерен сохранить их в файле JSON. Я пробовал разные коды, но ничего не работает. меня. Так что, пожалуйста, помогите?

1 Ответ

0 голосов
/ 27 мая 2020

JSON - это просто способ сохранить данные в конкретном формате c. Чтобы сохранить свои данные, вам сначала нужно правильно их сохранить, а затем просто сбросить. формат - dict, содержащий данные, разделенные ключами, и каждый ключ представляет собой карту. в вашем случае я выбрал «пользователи» в качестве ключа. у каждого пользователя в 'users' есть ключи (имя, описание и т.д. c) и значения из вашего списка.

вам нужно сделать что-то вроде этого:

import json

data = {'users': []}
for user in test:
    data['users'].append({
        'screen_name': user.screen_name,
        'name': user.name,
        'description': user.description,
        'followers_count': user.followers_count,
        'statuses_count': user.statuses_count
    })

with open('data.txt', 'w') as outfile:
    json.dump(data, outfile)
...