将lookup_users方法的结果保存在json文件中

问题描述 投票:0回答:1

我正在尝试通过用户屏幕名称使用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文件中我尝试了不同的鳕鱼,但对我没有用。所以请帮忙吗?

python python-3.x twitter tweepy
1个回答
0
投票

JSON只是一种以特定格式保存数据的方法。为了保存数据,首先需要正确存储数据,然后转储它。格式为dict,保存由键分隔的数据,每个键都是一个映射。在您的情况下,我选择“用户”作为键。“用户”中的每个用户都有列表中的键(名称,描述等)和值。

您需要执行类似操作:

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)
© www.soinside.com 2019 - 2024. All rights reserved.