【问题标题】:Get data inside JSON format in Python [closed]在 Python 中获取 JSON 格式的数据 [关闭]
【发布时间】:2019-11-11 13:10:32
【问题描述】:

我在使用 POSTMAN 检查响应时发出 GET 请求以检索数据。

from flask import Flask, request
from flask_restful import Resource, Api
from sqlalchemy import create_engine
from json import dumps
from flask import jsonify

db_connect = create_engine('sqlite:///quiz.db')
app = Flask(__name__)
api = Api(app)

class Quiz(Resource):
    def get(self, quiz_id):
        conn = db_connect.connect()
        query = conn.execute("select * from quiz where id =%d "  %int(quiz_id))
        result = {'data': [dict(zip(tuple (query.keys()) ,i)) for i in query.cursor]}
        return jsonify(result)

api.add_resource(Quiz, '/api/quiz/<quiz_id>') # Route_1

if __name__ == '__main__':
     app.run(port='5002')

这是我得到的回复:

{
    "data": [
        {
            "description": "I love Python",
            "id": 2,
            "name": "Python"
        }
    ]
}

这就是我想要的:

{
    "description": "I love Python",
    "id": 2,
    "name": "Python"
}

【问题讨论】:

  • 你试过什么? result['data'] 没有帮助你吗?
  • 获取关键数据值 ->result['data'][0]
  • @ncica result['data'][0] 就像一个魅力。谢谢

标签: python json python-3.x api flask-restful


【解决方案1】:
    result = {'data': [{'description': 'I love Python', 'name': 'Python', 'id': 2}]}
    result["another_data"] = [{ "description": "I love C","id": 3, "name": "C"}]
    for k in result.keys():
         print(result[k])

上面的代码会得到你想要的结果,如下所示。

    [{'description': 'I love Python', 'name': 'Python', 'id': 2}]
    [{'description': 'I love C', 'name': 'C', 'id': 3}]

【讨论】:

  • 还需要去掉方括号。
  • for k in result.keys(): print( ", ".join( repr(e) for e in result[k] ) ) 这将删除方括号。
猜你喜欢
  • 1970-01-01
  • 2017-07-31
  • 2021-12-07
  • 1970-01-01
  • 1970-01-01
  • 2017-11-04
  • 1970-01-01
  • 2021-09-05
  • 1970-01-01
相关资源
最近更新 更多