Я запрашиваю свою базу данных и присваиваю все результаты переменной reports
results = db.engine.execute("SELECT * FROM reports")
reports = [dict(r) for r in results]
Если я распечатаю эту переменную, у меня есть:
[{'id': 1, 'type': '{"organization":"Dunder Mifflin","reported_at":"2015-04-21","created_at":"2015-04-22","inventory":[{"name":"paper","price":"2.00"},{"name":"stapler","price":"5.00"}]}'}, {'id': 2, 'type': '{"organization":"MOM Corp.","reported_at":"3015-08-24","created_at":"3015-08-23","inventory":[{"name":"bending unit","price":"2000.00"},{"name":"stapling unit","price":"50.00"}]}'}, {'id': 4, 'type': '{"organization":"Flowers Inc.","reported_at":"2017-11-19","created_at":"2017-11-23","inventory":[{"name":"Flower pot","price":"2.00"},{"name":"Roses, 24","price":"50.00"}]}'}, {'id': 5, 'type': '{invalid_json'}]
Я хочуотобразил переменную reports
в моем шаблоне и сделал for loop
для итерации по всем отчетам.
@app.route('/allreports')
def allreports():
return render_template("allreports.html", reports=reports)
HOWEVER
Поскольку это список, яне может выполнить цикл for.
Например, я не могу напечатать «организацию» для каждого отчета.Как я могу это сделать?
Если я делаю цикл for, я могу печатать только идентификатор и тип, но не другие элементы внутри type
{% for report in reports %}
{{report['id']}
{{report['type']}
{% endfor %}
Если я делаю {{report['type']['organization']}}
ничего не распечатано.Я думаю, потому что вложенный диктат - это строка, а не диктат.
'type': '{"organization":"Dunder Mifflin","reported_at":"2015-04-21","created_at":"2015-04-22","inventory":[{"name":"paper","price":"2.00"},{"name":"stapler","price":"5.00"}]}'}