return 清空 JSON 来自 Flask

return empty JSON by Flask

我有一个简单的功能,应该returns JSON。

@app.route('/storage/experiments', methods=['GET'])
def get_experiments():
    if not request.json:
        abort(400)
    experiments = db['experiments']
    cursor = experiments.find(request.get_json())
    print(dumps(cursor))
    resp = Response(response=dumps(cursor),
    status=200, \
    mimetype="application/json")
    return resp

print(dumps(cursor)) 显示

[{"current": "11", "date": "12.12.2001", "_id": {"$oid": "551c7b642349c517f5fa5223"}, "name": "xaxa", "voltage": "34"}]

但 returns 空括号 []

您可以使用 flask 模块中的 jsonify 函数。

编辑 克里斯蒂安是对的,我没有注意到你在使用列表。无论如何,这是我专门为解决这个问题而编写的装饰器:Json decorator。希望这有帮助。

我猜这是因为你的数据库游标(我不知道你使用的是什么数据库框架。sqlalchemy?)在你想要 return 时指向数据集的末尾,因为你的 print()-statement 已经迭代了它。当您只注释掉 print() 语句时,它应该可以使用此代码,因为我看不到此代码中的任何其他错误:

@app.route('/storage/experiments', methods=['GET'])
def get_experiments():
    if not request.json:
        abort(400)
    experiments = db['experiments']
    cursor = experiments.find(request.get_json())
    #print(dumps(cursor))
    resp = Response(response=dumps(cursor),
    status=200, \
    mimetype="application/json")
    return resp