3 Stimmen

Anzeige von StackOverflow-API-JSON-Daten mit Flask

Ich habe versucht, meinen Benutzernamen und meinen Ruf aus den JSON-Daten anzuzeigen, die aus der StackOverflow-API abgerufen wurden.

Ich verwende das Python-Modul Requests, um die Daten abzurufen. Hier ist der Code

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 "Verbindungsfehler"  
    Jresponse = uResponse.text
    return Jresponse

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

Die nicht verwendeten Imports sind das, was ich brauche, um dies zu erledigen, aber ich scheine nicht zu wissen, wie ich es erledigen soll. Nachfolgend wird im Browser zurückgegeben. Ich möchte nur den Benutzernamen [display_name] und den Ruf anzeigen. Welche Optionen habe ich, um dies zu erreichen?

{"items":[{"user_id":540028,"user_type":"registered","creation_date":1292207782,"display_name":"Fuchida","profile_image":"http://www.gravatar.com/avatar/6842025a595825e2de75dfc3058f0bee?d=identicon&r=PG","reputation":13,"reputation\_change\_day":0,"reputation\_change\_week":0,"reputation\_change\_month":0,"reputation\_change\_quarter":0,"reputation\_change\_year":0,"age":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":"Minneapolis MN","account_id":258084,"badge_counts":{"gold":0,"silver":0,"bronze":3}}],"quota_remaining":282,"quota_max":300,"has_more":false}

4voto

enderskill Punkte 6978

Verwenden Sie json.loads(), um die Daten zu lesen und zu decodieren.

 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 "Verbindungsfehler"  
    Jresponse = uResponse.text
    data = json.loads(Jresponse)

    displayName = data['items'][0]['display_name']# <-- Der Anzeigename
    reputation = data['items'][0]['reputation']# <-- Der Ruf

    return Jresponse

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X