【问题标题】:Displaying stackOverflow API JSON data using Flask使用 Flask 显示 stackOverflow API JSON 数据
【发布时间】:2012-03-28 03:50:42
【问题描述】:

我一直在尝试从 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":"registered","creation_date":1292207782,"display_name":"Fuchida","profile_image":"http://www.gravatar .com/avatar/6842025a595825e2de75dfc3058f0bee?d=identicon&r=PG","re​​putation":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":false,"link":"http://stackoverflow.com/users/540028/fuchida","website_url":"http ://blog.Fuchida.me","位置":"明尼阿波利斯 MN","account_id":258084,"badge_counts":{"gold":0,"silver":0,"bronze":3}}],"quota_remaining":282,"quota_max":300,"has_more" :假}

【问题讨论】:

    标签: python json flask python-requests


    【解决方案1】:

    使用 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)
    

    【讨论】:

    • 谢谢!通过以下调整,这解决了我的问题。它只返回用户名,但现在已经足够好了。谢谢 !通过以下调整,这解决了我的问题。它只返回用户名,但现在已经足够好了。""""" displayName = parsedData['items'][0]['display_name'] return displayName
    猜你喜欢
    • 2016-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-04
    • 2021-07-13
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多