2013-10-08 27 views
-1

我試圖定義一個函數,該函數從包含json的文件中返回每個用戶的屏幕名稱('screen_name')和關注者計數('followers_count') Twitter用戶列表的顯示:` (...)從python的twitter用戶返回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", 

(...)

文件示例(縮短)`

它應該返回是這樣的:

>>> 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

假設您的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 

......這將返回一個字典,看起來像你想。然後你可以使用它,把它變成一個字符串,或者操縱它,但是你想要的東西。

您也可以使用字典推導凝結此功能:

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