Python 在flask html页面中访问json数据

Python 在flask html页面中访问json数据,python,json,flask,Python,Json,Flask,我有一个Python/Flask应用程序。在views.py中,我查询数据库并将分页对象返回到html页面进行渲染。此处返回的模型对象包括一个名称属性,该属性在HTML页面上可以像这样访问: {% for item in passed_items.items %} {{item.name}} {% endfor %} 这将正确输出。该对象还有一个JSON编码的属性。我无法正确访问此数据 {% for item in passed_items.items %} {{item.js

我有一个Python/Flask应用程序。在views.py中,我查询数据库并将分页对象返回到html页面进行渲染。此处返回的模型对象包括一个名称属性,该属性在HTML页面上可以像这样访问:

{% for item in passed_items.items %}
    {{item.name}}
{% endfor %}
这将正确输出。该对象还有一个JSON编码的属性。我无法正确访问此数据

{% for item in passed_items.items %}
    {{item.json}}
{% endfor %}
将正确输出所有JSON,但我无法访问JSON中的任何特定信息。例如,item.json将输出:

{"location":"here", "city":"there"}
但我无法访问具体信息,如位置或城市。我知道JSON编码正确,因为我将其复制并粘贴到python终端中,并且能够访问它。出于某种原因,python似乎无法识别作为dict或JSON输出的数据。以下是我尝试过的:

{% for item in passed_items.items %}
    {{item.json["location"]}}
    {{item.json['location']}}
    {{item.json.location}}
{% endfor %}
所有这些都没有产生任何结果。有关于如何访问此数据的提示吗?或者如何将其识别为dicitonary或JSON?我觉得我花了太多时间试图访问一个简单的JSON对象,哈哈

谢谢你的帮助

编辑:我已通过键入确认:

{% for json in item.json %}
    {{json}}
{% endfor %}
它只是将每个字符视为一个元素,而不将其识别为字典或JSON格式。for循环单独输出每个字符,而不是我想要的键/值对


Edit2:谢谢大家,是的,我在views.py中使用了json.loads()来首先处理json。然后我可以在以后的html页面中很好地访问它。谢谢你的帮助

json属性可能是一个字符串,您可以将其转换为字典,如下所示:

import json

data = {
    "name": "Johnson",
    "json": '{"array":[1,2,3],"boolean":true,"null":null,"number":123,"object":{"a":"b","c":"d","e":"f"},"string":"Hello World"}'
}

data['json'] = json.loads(data['json'])
print data['json']['number']

json
是字符串还是Python字典?它必须是后一种语法才能工作。JSON是一种序列化格式;您可以在文本中表示对象、列表和值,并再次对其进行反序列化以获得相同的数据。但是当序列化为JSON时,它只是一个字符串。是的,我想这会有用的。你知道如何使用flask渲染器在HTML文件中实现这一点吗?列表中有很多项,所以我尽量避免在views.py中编辑它们。@user3666149:用Python代码处理项目列表已经足够简单了。更难为模板提供对
json
模块的访问。