Django - 格式化/访问模板中的Pandas.to_dict()数据帧



如何在 Django 模板中访问这种类型的字典(字典中的字典(?

我想高度自定义 Pandas 在 Django 视图/模板中生成的数据帧。 我能够生成要渲染的字典,但事实证明,使用模板标签访问元素很困难。

下面是字典的示例:

df_dict =
{
('Key1', 'Key2'): {
'Line 1': '', 
'Line 2': '', 
'Line 3': 53000.0, 
'Line 4': -120000.0, 
'Line 5': 45000.0
}, 
('Key3', 'Key2'): {
'Line 1': '', 
'Line 2': 100.0, 
'Line 3': '', 
'Line 4': '', 
'Line 5': ''
}, 
('Key4', 'Key2'): {
'Line 1': 1000.0, 
'Line 2': '', 
'Line 3': 2000.0, 
'Line 4': '', 
'Line 5': ''
}
} 

我想要的模板输出(不考虑 css 格式(是:

Key1       Key3     Key4
Key2       Key2     Key2         
Line 1                         1000
Line 2                100   
Line 3     53000               2000
Line 4     -120000      
Line 5     45000

我已经厌倦了一个简单的模板标签来迭代字典,如下所示:

{% for key, value in object %}
<li>{{key}} : {{value}}</li>
{% endfor %}

但它只规定:

Key1 : Key2
Key3 : Key2
Key4 : Key2

我不知道如何进入上述密钥对的值的字典。 我也通过无数的.dot符号标签工作,没有任何运气。

我还查看了其他可以呈现"漂亮"html 的库,但我想进一步使用bootstrap进行自定义。 我也看过文之心的解决方案,但我希望有更多的灵活性。

数据结构更新

这些信息显然来自 QuerySet,但为了从多个模型合并和透视,我使用了 Pandas。 正确构建数据帧并格式化后,我使用了df_dict.to_dict()方法(其中df_dict是我的数据帧(,然后将其传递到上下文字典中。 基本上:

context = {
#stuff,
'df_dict': df_dict,
#more stuff,
}
return context

我展示的结构很简单 - 列索引更有可能具有三个或更多键。 值的大小和设计在设计上是恒定的(换句话说,每个键组将有 5 行值字典,或值字典中的 19 行(。

最后说明@ScottSkiles缩小差距的地方 - SO Question 在这里开始使用字典中的字典,但最后使用模板示例的答案省略了模板中的.items方法,数据集是一个列表。 但下面的答案是恰当的。

尝试:

{% for key, values in object.items %}
<li>{{key}} : 
<ul>
{% for value in values %} 
<li>{{value.name}}</li>
{% endfor %}
</ul>
</li>
{% endfor %}

通过:如何在 Django 模板中的字典中遍历字典?

最新更新