我有一个复杂的嵌套模型列表,如下所示:
hierarchy_tree = ['0000', 'hierarchy' [['0000-22', 'hierarchy2', [['0000-33', 'hiearchy3', [['0000-44-4444', 'hiearchy4', [['0000-55-5555-55', 'hiearchy5', []]]]]]]]]]
我可以使用点表示法轻松地在模板中显示它 - 例如:
{% for hierarchy in hierarchy_tree %}
<tr class="item" data-id="{{system.0}}" data-parent="">
<td>
{{hierarchy.0}}
</td>
<td>
{{hierarchy.1.genericname}}
</td>
现在我正在尝试将此输出到.xlsx文件但我无法弄清楚如何通过此列表的所有级别?如何在模板中执行与将此列表传递给excel相同的操作?
我已经尝试过以下方法,它将返回第一个列表,但是因为这样的方式会抛出一个错误(ValueError at / post / 1 / export / hierarchy / - 不能隐藏(我的传入列表)到excel)我相信它们是嵌套的。
for r in hierarchy_tree:
ws.append(r)
我也尝试过多次尝试使用其他方法访问子列表。
所以底线我需要弄清楚如何访问和传递子列表的值 - 任何想法或帮助将不胜感激?
谢谢
答案 0 :(得分:1)
评论: ...只是列表中的一行...
Python print
一行中的list
类型的实例,与 [...] 一致。
您的hierarchy_tree
属于列表中的n个列表
list
中的每个不 hierarchy_tree
都以 [开头,以] 结尾。
您必须将hierarchy_tree
分成行数据。
例如:
def treeWalk(tree, level=0):
rData = [ '' for i in range(level)]
for item in tree:
if isinstance(item, list):
if len(rData) > level:
ws.append(rData)
level += 1
treeWalk(item, level)
return
rData.append(item)
treeWalk(hierarchy_tree)
使用Python测试:3.4.2 - openpyxl:2.4.1 - LibreOffice:4.3.3.2