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
答案 0 :(得分:0)
j
不是数字。 j
是prets
列表中的一个元素。 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
中的元素,而不是索引号。