【问题标题】:Full tag in to_xml pandas in any case在任何情况下 to_xml 熊猫中的完整标签
【发布时间】:2022-12-19 15:38:24
【问题描述】:

我有这样的代码:

    data_to_string = data_from_table.to_xml(path_or_buffer= file_name + ".xml", index=False,
                                            root_name="convoy", row_name="vehicle", xml_declaration=False)

它适用于包含多行的文件,但如果没有要导出的内容,我只有

<convoy/>

在我的 .xml 中。

我怎样才能修复代码:

<convoy>
</convoy>

在任何情况下?

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    此行为是 hard-coded 到 xml 库中。

    您的要求可以通过检查数据框中是否有行来满足,如果没有,则创建一个空的html-string(herehere)并将其写入输出。

    请注意&lt;convoy/&gt;&lt;convoy&gt;&lt;/convoy&gt;equivalentXML.

    这是一个完整的示例:

    import pandas as pd
    from lxml import etree
    
    file_name = "test"
    path = file_name + ".xml"
    root_name = "convoy"
    row_name = "vehicle"
    
    data_from_table = pd.DataFrame()
    if len(data_from_table.index) > 0:
        data_to_string = data_from_table.to_xml(
            path_or_buffer=path,
            index=False,
            root_name=root_name,
            row_name=row_name,
            xml_declaration=False,
        )
    else:
        elem = etree.Element(root_name)
        empty_xml = etree.tostring(elem, method="html", encoding="unicode")
        with open(path, "w") as f:
            f.write(empty_xml)
    

    【讨论】:

      猜你喜欢
      • 2021-12-02
      • 2019-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多