-1

我正在尝试定义一个函数,该函数从包含 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)
4

1 回答 1

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 推导来压缩此函数:

def followers_counts(input):
    return {user["screen_name"]: user["follower_count"] for user in json.loads(input)}
于 2013-10-08T22:12:39.893 回答