【发布时间】:2023-03-15 16:39:01
【问题描述】:
我需要从 python 中的 csv 文件中生成填充数据的 xml 文件
我有两个输入文件:
一个名为 data.csv 的 CSV 文件包含如下数据:
ID YEAR PASS LOGIN HEX_LOGIN
14Z 2013 (3e?k<.P@H}l hex0914Z F303935303031345A
14Z 2014 EAeW+ZM..--r hex0914Z F303935303031345A
.......
一个名为 template.xml 的模板文件
<?xml version="1.0"?>
<SecurityProfile xmlns="security_profile_v1">
<year></year>
<security>
<ID></ID>
<login></login>
<hex_login></hex_login>
<pass></pass>
</security>
</SecurityProfile>
我想获得与 csv 数据文件中的行一样多的输出文件,每个输出文件名为 YEAR_ID,xml 字段中包含来自 csv 文件的数据:
输出文件内容:
名为 2013_0950014z 的输出文件 #1 的内容:
<?xml version="1.0"?>
<SecurityProfile xmlns="security_profile_v1">
<year>2013</year>
<security>
<ID>14Z</ID>
<login>hex0914</login>
<hex_login>F303935303031345A</hex_login>
<pass>(3e?k<.P@H}l</pass>
</security>
</SecurityProfile>
名为 2014_0950014z 的输出文件 #2 的内容:
<?xml version="1.0"?>
<SecurityProfile xmlns="security_profile_v1">
<year>2014</year>
<security>
<ID>14Z</ID>
<login>hex0914</login>
<hex_login>F303935303031345A</hex_login>
<pass>EAeW+ZM..--r</pass>
</security>
</SecurityProfile>
感谢您的建议。
【问题讨论】:
-
对我来说看起来很简单——使用
csv.DictReader+ 标准字符串格式就足够了。你试过什么? -
那么你在纠结哪一点?
-
起初我认为我需要一些像 elementtree 一样的东西,所以我在 xml 上苦苦挣扎,但 Burhan Khalid 的解决方案在我看来很不错。
标签: python xml csv elementtree