使用 Django 将嵌套列表输出到 xlsx

Output nested list to xlsx using Django

我有一个复杂的模型嵌套列表,如下所示:

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?

我已经尝试了以下将 return 第一个列表但抛出错误(ValueError at /post/1/export/hierarchy/ - cannot covert(my passed in list)to excel)子列表是因为我相信它们的嵌套方式。

for r in hierarchy_tree:
    ws.append(r)

我也尝试过使用其他方法访问子列表,但多次失败。

所以底线是我需要弄清楚如何访问和传递子列表的值 - 任何想法或帮助将不胜感激?

谢谢

Comment: ... is just 1 row in the list ...

Python print 一行 类型 list 的一个实例,用 [ ... ] 包围.
您的 hierarchy_tree 属于类型 list of n lists.
n't list in hierarchy_tree[ 开始并以 ][=36 结束=].


您必须将 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