Как перебрать / разобрать объект Tweepy get_user - PullRequest
2 голосов
/ 29 февраля 2012

Играя с Tweepy, я замечаю, что переменная 'status', возвращаемая из вызова get_user, равна <tweepy.models.Status object at 0x02AAE050>

Конечно, я могу вызвать get_user.USER.status, но как я могу получить эту информацию?из вызова get_user?то есть я хочу перебрать пользователя. getstate () и, если я найду объект, который требует дальнейшей итерации, тоже пройдусь по нему

Я искал высокий / низкий ответы, но мойновизна в Python вызывает проблемы, которые, я уверен, легко решить, если бы я знал правильные вопросы.

Спасибо за любой указатель здесь ...

# -*- coding: utf-8 -*-

import sys

import tweepy
import json

from pprint import pprint


api = tweepy.API()



def main():
    print "Starting."

    user = api.get_user('USER',include_entities=1)

    print "================ type ================="
    print type(user)

    print "================ dir ================="
    print dir(user)

    print "================ user ================="
    #
    # We can see 'status': <tweepy.models.Status object at 0x02AAE050>, .......but how do I "explode" that automagically?
    #
    pprint ((user).__getstate__())



    print "================ user.status ================="
    pprint ((user).status.__getstate__())

    print "================= end ================="





if __name__ == "__main__":
  main()

Iсмог получить намеченное поведение с помощью jsonpickle, используя следующий код.

import jsonpickle
.
.
.
user = api.get_user('USERNAME',include_entities=1)
    pickled = jsonpickle.encode(user)
    print(json.dumps(json.loads(pickled), indent=4, sort_keys=True))   #you could just  print pickled, but this makes it pretty

Мне по-прежнему очень интересно понять, чего мне не хватает в понимании того, как обнаружить и расширить этот объект статуса.

1 Ответ

7 голосов
/ 22 октября 2013

попробуйте это:

api = tweepy.API (auth, parser = tweepy.parsers.JSONParser ())

user = api.get_user ('USER', include_entities = 1)

теперь вы можете легко использовать пользователя ['status'] и других

...