我正在处理字数并在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中完成,然后再将它作为字符串放在上下文中吗?
答案 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]})