在使用Tweepy时,我注意到对get_user的调用返回的'status'变量是<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
我仍然非常有兴趣了解我在理解如何检测和扩展该状态对象时所缺少的内容。
答案 0 :(得分:6)
试试这个:
api = tweepy.API(auth,parser = tweepy.parsers.JSONParser())
user = api.get_user('USER',include_entities = 1)
现在您可以轻松地用户['status']和其他人