Как читать список json в шаблоне flask - PullRequest
0 голосов
/ 10 апреля 2020

Я новичок в flask и python, и я пытаюсь отобразить список json, который я получаю от python, это python

lista = []
    for msg in listOfData:
        dicta= {
            "a": msg[0],
            "b": msg[1],
            "c": msg[2],
            "d": msg[3],
        }
        lista.append(dicta)
    return render_template('page.html', jsnObj=json.dumps(lista ))

и вот шаблон:

<script>
  var tmpStr = '{{jsnObj | safe}}';
  var newStr = tmpStr.substring(1, tmpStr.length-1); //remove list square brackets
  var myJson = JSON.stringify(newStr);
  myJson = myJson.replace(/\\/g, ""); //remove slashes
  $('#paragraph').text(myJson);
</script>

Дело в том, что мне нужно l oop на json и отделить каждое значение ключа, как обычно, поэтому я хочу иметь возможность сделать следующее:

{% for j in jsnObj %}
  {{j['a']}}
{% endfor %}

Я продолжаю получать json в виде строки и не могу использовать значения ее ключей, Примечание (я пытался использовать jsonify, но потом не смог отобразить шаблон одновременно).

1 Ответ

0 голосов
/ 10 апреля 2020

Попробуйте это ниже:

lista = []
for msg in listOfData:
    dicta= {
        "a": msg[0],
        "b": msg[1],
        "c": msg[2],
        "d": msg[3],
    }
    lista.append(dicta)
return render_template('page.html', jsnObj=lista)   # ---- No need for json.dumps here

и в вашем html сделайте это:

{% for j in jsnObj %}
  {{j['a']}}
{% endfor %}

В вашем скрипте напрямую используйте:

<script>
  var myJson = '{{jsnObj}}';
  $('#paragraph').text(JSON.stringify(myJson));
</script>
...