Python Django将dict作为表添加到模板中

Python Django将dict作为表添加到模板中,python,django,django-templates,Python,Django,Django Templates,如何使用Django将字典添加到模板中 只是想把所有的信息放在一张漂亮的桌子上 我有以下意见: {'Information': {0: 'size', 1: 'energy [kWh]', 2: 'ratio [PR]'}, 'Value': {0: 570.66, 1: 984092.66, 2: 81.7}} 试图在值[0]%中为v使用{%v}-无法分析剩余值:“[0]”来自“值[0]” HTML部分 <div> <table&g

如何使用Django将字典添加到模板中 只是想把所有的信息放在一张漂亮的桌子上

我有以下意见:

{'Information': {0: 'size', 1: 'energy [kWh]', 2: 'ratio [PR]'}, 'Value': {0: 570.66, 1: 984092.66, 2: 81.7}}
试图在值[0]%中为v使用
{%v}
-无法分析剩余值:“[0]”来自“值[0]”

HTML部分

         <div>
            <table>
                <tr>
                    <th>Information</th>
                    <th>Value</th>
                </tr>
                    <tr>
                        {% for key, values in dict_data.items %}
                        {% for v in values %}
                        <td>{{v}}</td>
                        {% endfor %}
                    </tr>
                    {% endfor %}
            </table>
        </div>

问询处
价值
{键为%,dict_data.items%中的值}
{值%中的v为%0}
{{v}
{%endfor%}
{%endfor%}
结果是:


谢谢

我认为您的HTML与您所说的结果不匹配;您的
信息
标题在
标题之前,但在您的输出中,
位于第一位。此外,您只有两个标题
,但嵌套字典有3个值,因此当前处理数据的方式将导致表体中的单元格多于标题

另一个问题是:你的
也是一个dict,因此
{%for v in values%}
只会得到嵌套dict的键(
0
1
2
),而你永远不会得到嵌套的值(
size
energy[kWh]
ratio[PR]
)。您可能需要以下内容:

{% for key, values in dict_data.items %}
{% for sub_key, sub_value in values.items %}
另外:每行处理一个键/值集,因此表的第一行将具有
信息
值,第二行将具有
值(反之亦然),但您需要的是信息中的一个值和每行值中的一个值。因此,最终您需要以不同的方式构建数据(可能是成对的)

我将使用信息/值对,而不是您当前的结构:

dict_data = {'Information': {0: 'size', 1: 'energy [kWh]', 2: 'ratio [PR]'}, 'Value': {0: 570.66, 1: 984092.66, 2: 81.7}}
info_value_pairs = [('size', 570.66), ('energy [kWh]', 984092.66), ('ratio [PR]', 81.7)]
然后在模板中:

{% for pair in info_value_pairs %}
<tr><td>{{ pair.0 }}</td><td>{{ pair.1 }}</td></tr>
{% endfor %}
{info\u value\u pairs%}
{{pair.0}{{pair.1}
{%endfor%}

我认为您的HTML与您所说的不匹配;您的
信息
标题在
标题之前,但在您的输出中,
位于第一位。此外,您只有两个标题
,但嵌套字典有3个值,因此当前处理数据的方式将导致表体中的单元格多于标题

另一个问题是:你的
也是一个dict,因此
{%for v in values%}
只会得到嵌套dict的键(
0
1
2
),而你永远不会得到嵌套的值(
size
energy[kWh]
ratio[PR]
)。您可能需要以下内容:

{% for key, values in dict_data.items %}
{% for sub_key, sub_value in values.items %}
另外:每行处理一个键/值集,因此表的第一行将具有
信息
值,第二行将具有
值(反之亦然),但您需要的是信息中的一个值和每行值中的一个值。因此,最终您需要以不同的方式构建数据(可能是成对的)

我将使用信息/值对,而不是您当前的结构:

dict_data = {'Information': {0: 'size', 1: 'energy [kWh]', 2: 'ratio [PR]'}, 'Value': {0: 570.66, 1: 984092.66, 2: 81.7}}
info_value_pairs = [('size', 570.66), ('energy [kWh]', 984092.66), ('ratio [PR]', 81.7)]
然后在模板中:

{% for pair in info_value_pairs %}
<tr><td>{{ pair.0 }}</td><td>{{ pair.1 }}</td></tr>
{% endfor %}
{info\u value\u pairs%}
{{pair.0}{{pair.1}
{%endfor%}

如果您只有我提到的dict-
{'Information':{0:'size',1:'energy[kWh',2:'ratio[PR]},'Value':{0:570.66,1:984092.66,2:81.7}
-您如何编写包含所有键和嵌套值的HTML表?还有什么比dict更合适的方法吗?(我有一个数据帧转换成dict)-谢谢!你会推荐什么样的数据结构呢?我添加了一个例子,说明如何以不同的方式传递数据,如果你只有我提到的dict-
{'Information':{0:'size',1:'energy[kWh]',2:'ratio[PR]'},'Value':{0:570.66,1:984092.66,2:81.7}
-如何编写包含所有键和嵌套值的HTML表?还有什么比dict更合适的方法吗?(我有一个数据帧转换成dict)-谢谢!您建议采用什么样的方式来构造数据?我添加了一个示例,说明如何以不同的方式传递数据,并使用它(每行的信息/值对)