2012-03-28 48 views
3

我一直試圖顯示從StackOverflow API檢索到的JSON數據我的用戶名和信譽。使用Flask顯示stackoverflow API JSON數據

即時通訊使用python模塊請求檢索數據。 下面是代碼

from flask import Flask,jsonify 
import requests 
import simplejson 
import json 

app = Flask(__name__) 

@app.route("/") 
def home(): 
    uri = "https://api.stackexchange.com/2.0/users? order=desc&sort=reputation&inname=fuchida&site=stackoverflow" 
    try: 
     uResponse = requests.get(uri) 
    except requests.ConnectionError: 
     return "Connection Error" 
    Jresponse = uResponse.text 
    return Jresponse 

if __name__ == "__main__": 
    app.run(debug = True) 

未使用的進口是我需要的東西來完成這件事,但不能似乎知道如何完成它。 下面是返回給瀏覽器的內容,我只想顯示用戶名[display_name]和聲譽。我必須完成哪些選擇?

{ 「項」:[{ 「USER_ID」:540028 「USER_TYPE」: 「註冊」, 「CREATION_DATE」:1292207782, 「DISPLAY_NAME」: 「Fuchida」, 「profile_image」:「HTTP://信譽「:13,」reputation_change_day「:0,」reputation_change_week「:0,」reputation_change_month「:0,」reputation_change_quarter「:0, reputation_change_year 「:0,」 時代 「:24,」 last_access_date 「:1332905685,」 LAST_MODIFIED_DATE 「:1332302766,」 is_employee 「:假的,」 鏈接 「:」 http://stackoverflow.com/users/540028/fuchida 「」 website_url「:」http://blog.Fuchida.me「,」location「:」Minneapolis MN「,」account_id「:258084,」badge_counts「:{」gold「:0,」silver「:0,」bronze 「:3}}],」quota_remaining「:282,」quota_max「:300,」has_more「:false}

回答

4

使用json.loads()來讀取和解碼數據。

from flask import Flask,jsonify 
import requests 
import simplejson 
import json 

app = Flask(__name__) 

@app.route("/") 
def home(): 
    uri = "https://api.stackexchange.com/2.0/users? order=desc&sort=reputation&inname=fuchida&site=stackoverflow" 
    try: 
     uResponse = requests.get(uri) 
    except requests.ConnectionError: 
     return "Connection Error" 
    Jresponse = uResponse.text 
    data = json.loads(Jresponse) 

    displayName = data['items'][0]['display_name']# <-- The display name 
    reputation = data['items'][0]['reputation']# <-- The reputation 

    return Jresponse 

if __name__ == "__main__": 
    app.run(debug = True) 
+0

謝謝!對於我來說,這是通過下面的調整解決了這個問題。它只返回用戶名,但現在已經夠用了。 謝謝!對於我來說,這是通過下面的調整解決了這個問題。 「」「」「」 _displayName = parsedData ['items'] [0] ['display_name'] _ _return displayName_ – Fuchida 2012-03-29 21:46:37