我正在创建一个python字典并将其传递给javascript。
var students = {{myStudents}}
生成后
var students = [(u'Mark', u'b7'), (u'Phillipe', u'a67'), (u'John', u'a1')]
现在我需要遍历名称(Mark,Philippe等等)并填充下拉列表。
我的问题是,如何单独访问键/值。最终我可以单独传递两个列表,但我想检查它们是否是另一种非暴力方式。
答案 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) {
}