Python 如何在Django模板中显示Json项?

Python 如何在Django模板中显示Json项?,python,json,django,Python,Json,Django,我想以表格的形式显示我的Json数据。但当我尝试时,json格式看起来是一样的 我的数据 views.py 注意:这是我的测试页面。数据将以API的形式呈现给我,但API将采用这种格式,所以我想尝试以这种方式处理数据。因为在API中有几个不同的数据,这只是一个示例。好的,那么您需要DICT列表的表格视图吗?您首先需要知道所有键(列): 然后在模板中执行类似的操作 <table> <thead> <tr> {% f

我想以表格的形式显示我的Json数据。但当我尝试时,json格式看起来是一样的

我的数据 views.py
注意:这是我的测试页面。数据将以API的形式呈现给我,但API将采用这种格式,所以我想尝试以这种方式处理数据。因为在API中有几个不同的数据,这只是一个示例。

好的,那么您需要DICT列表的表格视图吗?您首先需要知道所有键(列):

然后在模板中执行类似的操作

<table>
    <thead>
        <tr>
            {% for key in key_order %}
            <th>{{ key }}</th>
            {% endfor %}
        </tr>
    </thead>
    <tbody>
        {% for item in data %}
        <tr>
            {% for key in key_order %}
            <td>{{ item.get(key) }}</td>
            {% endfor %}
        </tr>
        {% endfor %}
    </tbody>
</table>

{键顺序为%的键为%}
{{key}}
{%endfor%}
{数据%中的项的%1}
{键顺序为%的键为%}
{{item.get(key)}
{%endfor%}
{%endfor%}

您是。。。将excel文件读入数据框,将该数据框转储为JSON,然后将该JSON加载回。。。那就
pd.to_html()
。?你可以使用普通的Javascript,实际上这是我的测试页面。数据将以API的形式呈现给我,但API将采用这种格式,所以我想尝试以这种方式处理数据。因为在API中有几个不同的数据,这只是一个例子。首先非常感谢您的帮助,但我现在得到了这个输出:1 2 3 4 5 6:F R U a c d e I l m n o s t听起来数据实际上不是一个dict列表,但可能是dict本身。
def test_view(request):
    # Financial Ratios
    fr = pd.read_excel('media/test.xlsx', usecols='A:G', skiprows=lambda x: x < 0 or x > 42, sheet_name='Scoring')
    json_fr = fr.to_json()
    ...
    data = json.loads(json_fr)

    index_key_mapping = {index: key for index, key in enumerate(data.keys())}
    formated_data = [{
        index_key_mapping[index]: value for index, value in enumerate(ord_pair)
    } for ord_pair in zip(*[
        dictionary.values() for key, dictionary in data.items()
    ])]
    context = {
        'formated_data': formated_data,
    }
return render(request, 'json_test.html', context)
{% for item in formated_data %}

    <li> {{ item }} </li>

{% endfor %}
{'Financial Ratios': 'Ratios', 'Unnamed: 1': 'Formula ', 'Unnamed: 2': '2013', 'Unnamed: 3': 2012.0, 'Unnamed: 4': 'Point', 'Unnamed: 5': 'Max Score for the Ratio', 'Unnamed: 6': 'Weighted Score'}
{'Financial Ratios': 'Activity Ratios', 'Unnamed: 1': None, 'Unnamed: 2': None, 'Unnamed: 3': None, 'Unnamed: 4': None, 'Unnamed: 5': None, 'Unnamed: 6': None} ...
def test_view(request):
    data = ...
    keys = set()
    for item in data:
        keys.update(set(item))  # gather up all keys
    key_order = sorted(keys)  # or whichever order you like

    context = {
        "data": data,
        "key_order": key_order,
    }
    return render(request, 'json_test.html', context)
<table>
    <thead>
        <tr>
            {% for key in key_order %}
            <th>{{ key }}</th>
            {% endfor %}
        </tr>
    </thead>
    <tbody>
        {% for item in data %}
        <tr>
            {% for key in key_order %}
            <td>{{ item.get(key) }}</td>
            {% endfor %}
        </tr>
        {% endfor %}
    </tbody>
</table>