4

在玩 Tweepy 时,我注意到调用 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()

通过使用 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

我仍然很想了解我在了解如何检测和扩展该状态对象时缺少什么。

4

1 回答 1

8

尝试这个:

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

用户 = api.get_user('USER',include_entities=1)

现在您可以轻松地使用 user['status'] 和其他人

于 2013-10-22T06:10:16.590 回答