返回python中twitter用户的JSON表示中的屏幕名称和计数

时间:2013-10-08 14:13:39

标签: python json twitter

我正在尝试定义一个函数,该函数从包含twitter用户列表的json表示的文件中返回每个用户的屏幕名称('screen_name')和followers count('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)

1 个答案:

答案 0 :(得分:0)

假设您的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 comprehensions缩小此功能:

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