【问题标题】:Convert CSV to XML by LXML & Pandas in python在 python 中通过 LXML 和 Pandas 将 CSV 转换为 XML
【发布时间】:2021-11-21 22:23:31
【问题描述】:

我正在处理一个需要将 csv 转换为 XML 的项目。我的以下代码工作正常,但结果不是我想要的,我想知道是否有人能指出我缺少哪种方法。

所以我的 csv pandas 数据框看起来很像:

  a b c d
0 1 2 3 4
1 2 3 4 5
2 3 4 5 6

和代码:

xmlroot = lxml.etree.Element("root")
for row in df.to_dict(orient='records'):
    current = lxml.etree.Element('project')
    xmlroot.append(current)
    for col, value in row.items():
        current.set(col, value)
with open('final.xml', 'wb') as filepath:
    filepath.write(lxml.etree.tostring(xmlroot, pretty_print=True))

输出是:

<root>
  <project a=1 b=2 c=3 d=4/>
</root>

但我想要的东西看起来像:

<root>
  <project>
    <a>1</a>
    <b>2</b>
    <c>3</c>
    <d>4</d>
  </project>
</root>

任何帮助将不胜感激!

【问题讨论】:

    标签: python pandas xml lxml


    【解决方案1】:

    使用to_xml:

    df.to_xml('final.xml', index=False, root_name='root', row_name='project')
    

    输出:

    >>> %cat 'final.xml'
    <?xml version='1.0' encoding='utf-8'?>
    <root>
      <project>
        <a>1</a>
        <b>2</b>
        <c>3</c>
        <d>4</d>
      </project>
      <project>
        <a>2</a>
        <b>3</b>
        <c>4</c>
        <d>5</d>
      </project>
      <project>
        <a>3</a>
        <b>4</b>
        <c>5</c>
        <d>6</d>
      </project>
    </root>
    

    【讨论】:

      猜你喜欢
      • 2019-07-27
      • 2021-12-26
      • 1970-01-01
      • 1970-01-01
      • 2019-11-17
      • 2013-06-18
      • 1970-01-01
      • 1970-01-01
      • 2011-03-11
      相关资源
      最近更新 更多