Разбор json с помощью jinja2

У меня есть базовое приложение Flask, которое принимает некоторые пользовательские данные, работает несколько раз и возвращает данные в том, что я считаю JSON, как показано ниже. Возвращаемое значение функции Python выглядит так:

# calculate function
...
data = {}
# some basic maths...
data[split] = [hour, minutes, seconds]
json_data = json.dumps(data)
return json_data

Возвращаемое значение выглядит так:

{"100": [0.0, 1.0, 36.06666666666666], "200": [0.0, 3.0, 12.133333333333326], "400": [0.0, 6.0, 24.26666666666665]}

и отправляется в html-шаблон Flask:

splits = calculate(a,b)
return render_template("home.html", splits=splits)

Итак, сейчас я думаю, что возвращаю JSON в шаблон Jinja. Как я могу разобрать JSON в шаблоне? Я пытался:

  <div id="result">
    <ul>
      {% for split in splits %}
        <li>{{ split }} </li>
      {% endfor %}
    </ul>
  </div>

Я ожидал, что это напечатает «100», «200», «400», но вместо этого он печатает отдельные символы строки, которая, как мне кажется, является JSON. Как мне получить доступ к каждому ключу и значению?

Что мне не хватает? Спасибо

Вам не нужно делать json.dumps(data) - вы можете установить разбиение как сам словарь.

Kai 13.09.2018 21:15

я не уверен, что следую, если честно ...

phish 13.09.2018 21:16
json.dumps (документация здесь) преобразует ваш словарь в синтаксически соответствующую (в формате JSON) строку, поэтому цикл for в вашем шаблоне обрабатывает splits как строку. Итак, в вашей функции вычисления (пример) у вас есть data = {'100': [0.0, 1.0, 36.06666666666666], '200': [0.0, 3.0, 12.133333333333326], '400': [0.0, 6.0, 24.26666666666665]}. Верните это и сохраните как разделенные.
Kai 13.09.2018 21:23

Боже мой, я не понимал, что это так просто! оно работает! спасибо за помощь @Kai

phish 13.09.2018 21:26

а также теперь я понимаю, что делал :)

phish 13.09.2018 21:27
0
5
34
0

Другие вопросы по теме