当我从instagram用户信息请求时,它只返回用户名

时间:2015-09-30 06:42:38

标签: python instagram instagram-api

我使用这个python library

from instagram.client import InstagramAPI
access_token = "Access Token"
api = InstagramAPI(access_token=access_token)
user_info = api.user(user_id)
print user_info

我收不到这个答案:

{
    "data": {
        "id": "1574083",
        "username": "snoopdogg",
        "full_name": "Snoop Dogg",
        "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_1574083_75sq_1295469061.jpg",
        "bio": "This is my bio",
        "website": "http://snoopdogg.com",
        "counts": {
            "media": 1320,
            "follows": 420,
            "followed_by": 3410
        }
}

我如何追溯生物,追随者数等信息?谢谢你

1 个答案:

答案 0 :(得分:2)

您实际上正在接收整个响应,但Instagram API客户端的Python版本正在返回其User类的实例(继承自ApiModel类)。

您可以通过单独访问这些属性来获取所需的所有数据:

user = api.user('1574083')
print user.username
print user.full_name
print user.profile_picture
print user.bio
print user.website
print user.counts 

打印哪些:

snoopdogg
snoopdogg
http://scontent.cdninstagram.com/hphotos-xap1/t51.2885-19/11186934_976841435684008_1692889037_a.jpg
Get BUSH now!
http://smarturl.it/BushAlbum
{u'media': 19019, u'followed_by': 6746636, u'follows': 1707}

这具有欺骗性,因为如果您只打印user,则只会看到User: snoopdogg。在Python中,它可以覆盖许多其他语言不允许的方法。具体来说,他们已经覆盖了__str____repr____unicode__,它们都用于将对象转换为字符串类型的对象进行打印。

据我了解,__str____unicode__应该是“漂亮”版本,而__repr__应该向您展示(如果可能)如何重建对象。他们在完成任一目标方面做得相当薄弱,但它可以说比对象的默认表示更好,就像<instagram.models.User object at 0xf8c5a750>一样。