如何通过参数python收集记录

2024-10-03 02:35:22 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我想通过idPret参数在prets列表中检索一条记录。然而,我得到一个错误:

TypeError: list indices must be integers, not dict

Tags: jsonappforget源代码defrouteint
2条回答

你把Python的行为误认为Javascript的行为。当你这么做的时候 for j in prets:在Python中,j的内容已经是pretz中的元素,而不是索引号

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

我将在这里使用不同的名称,并使用^{} function来创建响应:

from flask import jsonify

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

jsonify()负责转换为JSON并为您创建具有正确头的响应对象

相关问题 更多 >