2017-02-01 8 views
1

**** Я пытаюсь получить информацию с временной шкалы конкретного пользователя, и я пытаюсь распечатать вывод в формате Json, но я получаю AttributeError: объект 'str' имеет нет атрибута '_json'. Я новичок в python, поэтому у меня возникают проблемы с попыткой решить эту проблему, поэтому любая помощь будет принята с благодарностью. ****Python Twitter Streaming Timeline

Ниже показан код, который у меня есть на данный момент:

from __future__ import absolute_import, print_function

import tweepy 
import twitter 

def oauth_login(): 
    # credentials for OAuth 
    CONSUMER_KEY = 'woIIbsmhE0LJhGjn7GyeSkeDiU' 
    CONSUMER_SECRET = 'H2xSc6E3sGqiHhbNJjZCig5KFYj0UaLy22M6WjhM5gwth7HsWmi' 
    OAUTH_TOKEN = '306848945-Kmh3xZDbfhMc7wMHgnBmuRLtmMzs6RN7d62o3x6i8' 
    OAUTH_TOKEN_SECRET = 'qpaqkvXQtfrqPkJKnBf09b48TkuTufLwTV02vyTW1kFGunu' 

    # Creating the authentication 
    auth = twitter.oauth.OAuth(OAUTH_TOKEN, 
           OAUTH_TOKEN_SECRET, 
           CONSUMER_KEY, 
           CONSUMER_SECRET) 
    # Twitter instance 
    twitter_api = twitter.Twitter(auth=auth) 
    return twitter_api 

# LogIn 
twitter_api = oauth_login() 
# Get statuses 
statuses = twitter_api.statuses.user_timeline(screen_name='@ladygaga') 
# Print text 

for status in statuses: 
    print (status['text']._json) 
+0

«пытается распечатать вывод в формате Json». Есть ли конкретная причина, по которой вы хотите это сделать? Как правило, Json используется для хранения, а не для вывода. – patrick

+0

у вас есть неправильный путь - 'status ['text'] ._ json' должен быть' status._json ['text'] ' – asongtoruin

+0

Ну, в основном мой наставник хочет получить результат в списке, поэтому я и хочу пытался добавить «._json» при попытке распечатать вывод, но он дает ошибки @patrick – Arpit

ответ

1

Вы, кажется, смешиваясь с tweepytwitter, и, возможно, становится немного запутался с методами в результате. Процесс аутентификации для tweepy, из кода, должен идти следующим образом:

import tweepy 

def oauth_login(): 
    # credentials for OAuth 
    consumer_key = 'YOUR_KEY' 
    consumer_secret = 'YOUR_KEY' 
    access_token = 'YOUR_KEY' 
    access_token_secret = 'YOUR_KEY' 

    # Creating the authentication 
    auth = tweepy.OAuthHandler(consumer_key, 
           consumer_secret) 
    # Twitter instance 
    auth.set_access_token(access_token, access_token_secret) 
    return tweepy.API(auth) 

# LogIn 
twitter_api = oauth_login() 
# Get statuses 
statuses = twitter_api.user_timeline(screen_name='@ladygaga') 

# Print text 
for status in statuses: 
    print (status._json['text']) 

Если, как уже упоминалось ранее, вы хотите создать список твитов, вы можете сделать следующее, а не все, после того, как # Print text

# Create a list 
statuses_list = [status._json['text'] for status in statuses] 

И, как уже упоминалось в комментариях, вы не должны публично раздавать свои ключи. Twitter позволяет сбрасывать их, что я бы рекомендовал вам сделать как можно скорее - редактирование вашего сообщения недостаточно, так как люди все еще могут читать вашу историю изменений.

+0

Эй, спасибо, да, я сброшу его сейчас. Я использовал код, который вы предоставили, я получаю ошибку идентификации на user_key. Что происходит, потому что я не вижу ничего плохого в том, что я его заменил:/@asongtoruin – Arpit

+0

@Arpit кажется опечаткой, возможно, - проверьте, что у вас есть двоеточие, указанное в конце 'def oauth_login():'? – asongtoruin

+0

yeh Я дважды проверял, это так странно получить эту ошибку, когда я не вижу никаких ошибок опечатки – Arpit