如何通过参数python收集记录

时间:2016-09-02 08:58:05

标签: python flask

Python源代码:

@app.route('/pret/<int:idPret>', methods=['GET'])
def descrire_un_pret(idPret):

    j = 0

    for j in prets:
        if prets[j]['id'] == idPret:
            reponse = make_response(json.dumps(prets[j],200))
            reponse.headers = {"Content-Type": "application/json"}
            return reponse

我想通过prets参数检索idPret列表中的记录。不过我收到了一个错误:

TypeError: list indices must be integers, not dict

2 个答案:

答案 0 :(得分:0)

j不是数字。 jprets列表中的一个元素。 Python循环是foreach循环。 if j['id'] == idPret:可行:

for j in prets:
    if j['id'] == idPret:
        reponse = make_response(json.dumps(j, 200))
        reponse.headers = {"Content-Type": "application/json"}
        return reponse

我在这里使用了不同的名称,并使用flask.json.jsonify() function创建响应:

from flask import jsonify

for pret in prets:
    if pret['id'] == idPret:
        return jsonify(pret)

jsonify()负责转换为JSON并为您创建带有正确标题的响应对象。

答案 1 :(得分:0)

你错误地认为Python的行为是为了Javascript&#39。当你这样做 在Python中for j in prets:j的内容已经是pretz中的元素,而不是索引号。