Dan*_*rty 4 python xml csv lxml
朋友们,
作为一名新手充其量,考虑到论坛中的内容,我无法弄清楚这一点.最终,我想要做的就是获取一些简单的xml文件,并将它们全部转换为CSV(尽管这段代码一次只能用于一个).在我看来,没有官方名称空间,但我不确定.我有这个代码(我使用了一个标题,'SubmittingSystemVendor',但我真的想把它们全部写成CSV:
import csv
import lxml.etree
x = r'C:\Users\...\jh944.xml'
with open('output.csv', 'w') as f:
writer = csv.writer(f)
writer.writerow('SubmittingSystemVendor')
root = lxml.etree.fromstring(x)
writer.writerow(row)
Run Code Online (Sandbox Code Playgroud)
以下是XML文件的示例:
<?xml version="1.0" encoding="utf-8"?>
<EOYGeneralCollectionGroup SchemaVersionMajor="2014-2015" SchemaVersionMinor="1" CollectionId="157" SubmittingSystemName="MISTAR" SubmittingSystemVendor="WayneRESA" SubmittingSystemVersion="2014" xsi:noNamespaceSchemaLocation="http://cepi.state.mi.us/msdsxml/EOYGeneralCollection2014-20151.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<EOYGeneralCollection>
<SubmittingEntity>
<SubmittingEntityTypeCode>D</SubmittingEntityTypeCode>
<SubmittingEntityCode>82730</SubmittingEntityCode>
</SubmittingEntity>
Run Code Online (Sandbox Code Playgroud)
提前致谢!
Bri*_*ian 10
您正在使用lxml.etree.fromstring,但给它一个文件路径作为参数.这意味着它试图将"C:\ Users ...\jh944.xml"解释为要解析的XML数据.
相反,您要打开包含此XML 的文件.您可以简单地将调用替换为fromstringwith lxml.etree.parse,它将接受文件名或打开文件对象作为参数.