Javascript迭代python dict

时间:2016-02-19 10:41:24

标签: javascript python django

我正在创建一个python字典并将其传递给javascript。

var students = {{myStudents}}
生成后

var students = [(u'Mark', u'b7'), (u'Phillipe', u'a67'), (u'John', u'a1')]

现在我需要遍历名称(Mark,Philippe等等)并填充下拉列表。

我的问题是,如何单独访问键/值。最终我可以单独传递两个列表,但我想检查它们是否是另一种非暴力方式。

4 个答案:

答案 0 :(得分:1)

如果您在myStudents中确实有词典,则可以将模板编写为:

var students = {{% for key, value in myStudents %}{"{{ key }}": "{{ value }}"},{% endfor %}}

将成为

var students = {"Mark": "b7", "Philippe": "a67", ...}
HTML源代码中的

。然后,您可以使用以下代码在Javascript中迭代它:

for(var key in students) {
  var value = students[key];
  ...
}

答案 1 :(得分:1)

在将变量传递给Javascript之前,您需要

import json
json_var = json.dumps(var)

然后将json_var而不是var传递给Javascript。

在Javascript中,然后将其迭代为

for (k in students) {
}

使用k获取名称,使用students[k]获取与名称相关联的值。

如果您想坚持使用元组列表,请在循环中使用值students[k][0]作为名称,并使用students[k][1]作为元组中的第二个值。

答案 2 :(得分:0)

像@jsfan指出的那样,python字典会呈现如下: {u'students': {u'Mark': u'b7', u'Phillipe': u'a67', u'John': u'a1'}}。迭代你使用的字典,

  for (x in students) {
    students[x]
 }

但是,如果您希望获得特定键的值,例如键' Mark'的值,则使用:

for (x in students)
 {
    students[x]['Mark']
}

答案 3 :(得分:0)

我在这里尝试了答案,但对我却不起作用。我发现我所要做的就是解析JSON数据。我认为分享此解决方案可能对其他人有帮助: 在python文件中:

import json
json_data = json.dumps(your_dict)

将json_data传递到您的Javascript文件。 在您的Javascript文件中:

var keys = JSON.parse(json_data);
for (var key in keys) {

}