【问题标题】:Returning screen name and count from JSON representation on twitter users in python从 python 中 Twitter 用户的 JSON 表示返回屏幕名称和计数
【发布时间】:2013-10-15 12:29:23
【问题描述】:

我正在尝试定义一个函数,该函数从包含 twitter 用户列表的 json 表示的文件中返回每个用户的屏幕名称 ('screen_name') 和关注者计数 ('followers_count'):

文件示例(缩短)` (...)

"followers_count": 1815974, 
"follow_request_sent": false, 
"followers_count": 22928633, 
"screen_name": "twitterapi", 

"favourites_count": 22, 
"follow_request_sent": false, 
"followers_count": 22928633, 
"screen_name": "twitter", 

(...)`

它应该返回如下内容:

>>> followers_counts(open(input))
{u’twitter’: 22928633, u’twitterapi’: 1815974}

这是我目前得到的,你可以看到我不太擅长这个:

def followers_counts(input):
tweet = json.loads(input)
name = tweet["screen_name"]
count = tweet["followers_count"]
print "u '(1)':(2)".format(name, count)

【问题讨论】:

    标签: python json twitter


    【解决方案1】:

    假设您的 JSON 文件如下所示:

    [
        {
            "followers_count": 1815974, 
            "follow_request_sent": false, 
            "followers_count": 22928633, 
            "screen_name": "twitterapi"
        },
        {
            "favourites_count": 22, 
            "follow_request_sent": false, 
            "followers_count": 22928633, 
            "screen_name": "twitter"
        }
    ]
    

    ...你会做这样的事情:

    def followers_counts(input):
        users = json.loads(input)
        output = {}
        for user in users:
            output[user["screen_name"]] = user["follower_count"]
        return output
    

    ...这将返回一个看起来像你想要的字典。然后你可以使用它,把它变成一个字符串,或者按照你想要的方式操作它。

    您还可以使用 dict 推导来压缩此函数:

    def followers_counts(input):
        return {user["screen_name"]: user["follower_count"] for user in json.loads(input)}
    

    【讨论】:

      猜你喜欢
      • 2015-06-17
      • 2015-07-15
      • 2018-08-19
      • 1970-01-01
      • 1970-01-01
      • 2012-04-01
      • 1970-01-01
      • 2019-12-19
      • 1970-01-01
      相关资源
      最近更新 更多