2016-09-02 28 views
-2

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 

回答

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和创建与响应对象的护理正确的标题为你。

+0

感谢您的回答和解释。有效的结果是好的。 – user6760639

0

您错误地将Python的行为用于Javascript。当你在Python中使用 for j in prets:时,j的内容已经是pretz中的元素,而不是索引号。