我正在尝试从dataframe创建xml。我面临的问题是我想将列传递给参数,并且无法正常工作。
ORDER_NO 1175 1304 1421
7283630 2019-12-04 2019-12-10 2019-12-12
7283650 2019-12-25 NaN 2019-12-20
我的代码
header = """<ORD>{}</ORD>"""
body ="""
<osi:ORDSTSINF types:STSCDE="{}">
<DTM>{}</DTM>
</osi:ORDSTSINF>
<osi:ORDSTSINF types:STSCDE="{}">
<DTM>{}</DTM>
</osi:ORDSTSINF>
<osi:ORDSTSINF types:STSCDE="{}">
<DTM>{}</DTM>
</osi:ORDSTSINF>"""
for row in df.itertuples():
with open(f'{row[1]}.xml', 'w') as f:
f.write(header.format(row[1]))
f.write(body.format(col[2], row[2], col[3],row[3],col[4],row[4]))
我想在随后的STS = {}处传递列名。
预期输出
<ORD> 7283630</ORD>
<osi:ORDSTSINF types:STSCDE="1175">
<DTM>2019-12-04</DTM>
<osi:ORDSTSINF types:STSCDE="1304">
<DTM>2019-12-10</DTM>
<osi:ORDSTSINF types:STSCDE="1421">
<DTM>22019-12-12</DTM>
如何在python中完成?
因为在索引中从0
的python计数减去所有值的从1
到cols[2]
的列名中减去cols[1]
:
cols = df.columns
for row in df.itertuples():
with open(f'{row[1]}.xml', 'w') as f:
f.write(header.format(row[1]))
f.write(body.format(cols[1], row[2], cols[2],row[3],cols[3],row[4]))
<ORD>7283630</ORD>
<osi:ORDSTSINF types:STSCDE="1175">
<DTM>2019-12-04</DTM>
</osi:ORDSTSINF>
<osi:ORDSTSINF types:STSCDE="1304">
<DTM>2019-12-10</DTM>
</osi:ORDSTSINF>
<osi:ORDSTSINF types:STSCDE="1421">
<DTM>2019-12-12</DTM>
</osi:ORDSTSINF>