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