在 XML 中保存元组列表

Saving List of Tuples in XML

我有一个这样的列表列表:

[[value A, Value B, Value C], [value D, value E, Value F]]

我得到 XML 结构如下:

<root>
    <data>
    </data>
</root>

我正在尝试了解将列表写入 XML 的最佳方式。

我了解如何解析 XML、如何获取数据以及如何将数据写入 XML,在我的特定情况下使用 etree。我正在努力解决的是将这种数据类型存储在 XML.

中的概念性最佳实践

对于这个问题的夸张性质,我深表歉意,但我正在为这里的基本原理而苦苦挣扎。

我试过将整个列表保存为一个字符串,保存的很好——但是以后处理起来很麻烦。

更新:

使用@mkHun 的一般方法和@Jon Clements 属性概念,以下适用于我的目的:

from lxml import etree

var = [["value A", "Value B", "Value C"], ["value D", "value E", "Value F"]]
for j in var:
    root = etree.Element('root')
    member = etree.SubElement(root, "member")
    member.attrib['att1'] = j[0]
    member.attrib['att2'] = j[1]
    member.attrib['att3'] = j[2]
    root.append(member)

    out = etree.tostring(root, pretty_print=True)
    print(out)

这种方法减少了将每个列表合并为单个列表的迭代深度 SubElement,创建了一个类似于以下内容的 XML 结构:

<root>
    <member att1="Value A" att2="Value B" att3="Value C"/"
    <member att1="Value D" att2="Value E" att3="Value F"/"
</root>

我不确定这是存储这些数据的最佳或最有效的方式,但目前这是我尝试过的最佳方法。

谢谢

使用lxml

from lxml import etree

var = [["value A", "Value B", "Value C"], ["value D", "value E", "Value F"]]
for j in var:
    root = etree.Element('root')
    for m in j:
        data = etree.Element('data')
        data.text = m
        root.append(data)

    out = etree.tostring(root, pretty_print=True)
    print out