3

StackOverflow API から取得した JSON データから自分のユーザー名と評判を表示しようとしています。

PythonモジュールRequestsを使用してデータを取得しています。ここにコードがあります

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] と評判だけを表示したいのです。これを行うにはどのようなオプションが必要ですか?

{"items":[{"user_id":540028,"user_type":"登録済み","作成日":1292207782,"表示名":"フチダ","プロフィール画像":"http://www.gravatar.com/ avatar/6842025a595825e2de75dfc3058f0bee?d=identicon&r=PG","評判":13,"評判変更日":0,"評判変更週":0,"評判変更月":0,"評判変更四半期":0,"評判変更年":0,"年齢" :24,"last_access_date":1332905685,"last_modified_date":1332302766,"is_employee":false,"link":"http://stackoverflow.com/users/540028/fuchida","website_url":"http:// blog.Fuchida.me","location":"ミネアポリス MN","account_id":258084,"badge_counts":{"gold":0,"silver":0,"bronze":3}}],"quota_remaining":282,"quota_max":300,"has_more":false}

4

1 に答える 1

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)
于 2012-03-28T06:29:13.727 に答える