将django / python dict通过json转换为javascript dict

时间:2018-06-05 15:22:13

标签: javascript json django

我正在尝试将python dict转换为Javascript dict。据我所知,我必须将python dict转换为Json,我可以将其转换为Javascript对象

view.py

jsonheaderdict = json.dumps ( headerdict)
模板中的

{{jsonheaderdict}}会导致

 {"F 1": ["BBBB", "AAAAA"], "F 2": ["ASDASD"], "F 3": ["QWEQWE"]}

我的js看起来像这样

$(".dict").click(function () {
  alert("first alert");
  var result = JSON.parse(jsonheaderdict);
  alert(result);
});

第一个警报显示,第二个警报没有。我错过了什么?已经尝试过的var result = jQuery.parseJSON(jsonheaderdict);也没有用。 我搜索了类似的问题,但没有发现任何对我有用的灵魂。

修改 为了更好地理解在我的视图中如何创建jsonheaderdict

headerdict = dict()
for d in projectdescriptors:                     #list of objects called descriptors
    dp = projectprojections.filter(descriptor=d) #list of objects connected to descriptors 
    parray = []
    for p in dp:
        parray.append(p.name)
    headerdict[d.name] = parray

2 个答案:

答案 0 :(得分:1)

@Rubik ,我猜, alert()将字符串作为参数,并在第二次调用alert()时将其传递给对象。

  

JSON.parse()从任何对象(数组,集等)的字符串表示创建一个对象。

请尝试更改 JS 代码,如下所示(只修改2行):

  

请评论如果它不起作用,我会更新我的答案来帮助你。

from(config('app.senders.info.address'), config('app.senders.info.name'))

»请尝试以下示例代码进行验证。

$(".dict").click(function () {
  alert("first alert");
  // var result = JSON.parse(jsonheaderdict);
  alert(JSON.stringify(jsonheaderdict));
});

答案 1 :(得分:0)

重要的是要认识到你没有将值从Python传递给JavaScript,而是使用Python 编写JavaScript源代码。

此...

range

...是将对象(使用object literal创建)分配给vector的JavaScript语法。

它不是JSON。它不是一个字符串。把它放在library(tidyverse) v1 <- setNames(c(NA, 1, 0), as.character(unique(testdata$visit))) testdata %>% mutate(positivity = v1[visit]) %>% split(.$visit) %>% map2_df(., list(1:100, 20000:30000, 1:100), ~ .x %>% mutate(response = sample(.y, n()))) 附近的任何地方都没有意义。

直接使用该对象。

进一步阅读:There's no such thing as a "JSON Object"