在JSON中为键值对添加标签

时间:2016-04-08 12:06:33

标签: python django

我正在处理字数并在Django View(python 2)中有以下内容:

frequency = {'This': 1, 'is': 2, 'a': 1, 'python': 5, 'dictionary': 1}

但需要渲染转换它,以便键和值对标记如下。需要将变量安全地呈现到Django模板中以作为javascript变量使用。

frequency = [{"key": "This", "value": 1}, {"key": "is", "value": 2},{"key": "a", "value": 1}, {"key": "python", "value": 5}, {"key": "dictionary", "value": 5}];

鉴于我的实际字典要长得多,我正在寻找实现这一目标的最有效方法 - 这可以在纯python中完成,然后再将它作为字符串放在上下文中吗?

2 个答案:

答案 0 :(得分:2)

您可以使用items()和列表理解来执行此操作:

frequency = {'This': 1, 'is': 2, 'a': 1, 'python': 5, 'dictionary': 1}
frequency2 = [{"key": i, "value": j} for i,j in frequency.items()]

输出:

>>> frequency2
[{'value': 1, 'key': 'This'}, {'value': 1, 'key': 'a'}, {'value': 2, 'key': 'is'}, {'value': 1, 'key': 'dictionary'}, {'value': 5, 'key': 'python'}]

答案 1 :(得分:1)

你应该可以手动完成:

frequency2 = []
for each in frequency.items():
  frequency2.insert({"key":each[0],"value":each[1]})