Javascript在python dict上迭代

Javascript在python dict上迭代,javascript,python,django,Javascript,Python,Django,我正在创建一个python字典并将其传递给javascript var students = {{myStudents}} 生成时成为 var students = [(u'Mark', u'b7'), (u'Phillipe', u'a67'), (u'John', u'a1')] 现在,我需要在名称(Mark、Philippe等)上循环并填充一个下拉列表 我的问题是,如何单独访问键/值。最终我可以分别通过这两个列表,但我想检查它们是否是另一种非暴力方式。如果您在myStudents中确实

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

var students = {{myStudents}}
生成时成为

var students = [(u'Mark', u'b7'), (u'Phillipe', u'a67'), (u'John', u'a1')]
现在,我需要在名称(Mark、Philippe等)上循环并填充一个下拉列表


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

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

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];
  ...
}

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

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];
  ...
}

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

import json
json_var = json.dumps(var)
然后将
json\u var
而不是
var
传递给Javascript

var students = {{myStudents}}
在Javascript中,您可以将其作为

for (k in students) {
}
使用
k
获取姓名,使用
students[k]
获取与姓名关联的值


如果要继续使用元组列表,请使用循环中的值
students[k][0]
作为名称,使用
students[k][1]
作为元组中的第二个值。

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

import json
json_var = json.dumps(var)
然后将
json\u var
而不是
var
传递给Javascript

var students = {{myStudents}}
在Javascript中,您可以将其作为

for (k in students) {
}
使用
k
获取姓名,使用
students[k]
获取与姓名关联的值


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

如@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']
}

正如@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']
}

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

import json
json_data = json.dumps(your_dict)
将json_数据传递到Javascript文件。 在Javascript文件中:

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

}

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

import json
json_data = json.dumps(your_dict)
将json_数据传递到Javascript文件。 在Javascript文件中:

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

}


你为什么不用JSON编码你的dict?你所拥有的看起来也像一个元组列表,而不像dict。@jsfan你能举个例子吗?不知道为什么会这样!字典将呈现为
{u'Mark':u'b7',u'Phillipe':u'a67',u'John':u'a1'}
。然而,由于unicode标记的存在,您拥有的和拥有的都不是有效的Javascript。您想继续使用元组列表还是将其作为字典?这里有一些关于在JavaScript中迭代字典的有用信息。特别是,您需要使用
.hasOwnProperty()
方法。为什么不使用JSON对dict进行编码?您的dict看起来也像一个元组列表,而不是dict。@jsfan您能提供一个示例吗?不知道为什么会这样!字典将呈现为
{u'Mark':u'b7',u'Phillipe':u'a67',u'John':u'a1'}
。然而,由于unicode标记的存在,您拥有的和拥有的都不是有效的Javascript。您想继续使用元组列表还是将其作为字典?这里有一些关于在JavaScript中迭代字典的有用信息。特别是,您需要使用
.hasOwnProperty()
方法。json.dumps会产生pipe.breaked错误并增加加载time@Syntax_Error:你的字典或单子有多大?你能用一些相关的Python代码编辑你的问题吗?我以前用JSON编码过相当大的对象,没有任何性能问题。大约6000个元素。名称可以达到60个字符,代码是15个字符。。。我在问题中简化了它们。塞尔库克的答案是我认为最好的解决方案think@Syntax_Error:Selcuk的答案是可以的,只要字符串中没有双引号。这些将破坏您的Javascript。传递前的JSON编码更安全、更好。6000个元素绝对没有问题,如果你的管道破裂,说明你在哪里做错了什么。但是,如果没有看到代码和上下文,我就不知道它是什么。json.dumps给出了pipe.breaked错误并增加了加载time@Syntax_Error:你的字典或单子有多大?你能用一些相关的Python代码编辑你的问题吗?我以前用JSON编码过相当大的对象,没有任何性能问题。大约6000个元素。名称可以达到60个字符,代码是15个字符。。。我在问题中简化了它们。塞尔库克的答案是我认为最好的解决方案think@Syntax_Error:Selcuk的答案是可以的,只要字符串中没有双引号。这些将破坏您的Javascript。传递前的JSON编码更安全、更好。6000个元素绝对没有问题,如果你的管道破裂,说明你在哪里做错了什么。但是,如果没有看到代码和上下文,我就不知道它是什么,