【发布时间】:2015-07-20 15:46:34
【问题描述】:
我正在使用一系列列表将 XML 文档转换为 CSV,这样我就可以省略 XML 数据的特定部分。我的代码如下所示:
tree=ET.parse('Comments.xml')
root = tree.getroot()
dict={}
Score=[]
PostID=[]
ID=[]
CreationDate=[]
UserID=[]
for child in root:
dict.update(child.attrib)
Score.append(dict['Score'])
PostID.append(dict['PostId'])
ID.append(dict['Id'])
CreationDate.append(dict['CreationDate'])
UserID.append(dict['UserId'])
with open('Comments.csv','wb') as csvfile:
writer=csv.writer(csvfile)
for x in (0,174304):
writer.writerow([Score[x],PostID[x],ID[x],CreationDate[x],UserID[x]])
我意识到可能有更简洁的方法来执行上述操作,但还没有真正找到它们,并且无论如何都不能完全适应使用 XML。不幸的是,我正在创建的文档 (Comments.csv) 仅包含一对行观察结果,而不是 174305。此站点上显示了类似的问题,因为
with open('Comments.csv','wb')
部分处于循环中,这意味着文档反复打开并一次又一次地重写自己。不过,我的不在循环中,我的输出最终是
5 3 1 2010-07-19T19:15:52.517 13
1 115374 221292 2014-09-14T02:04:27.553 805
有人可以向我解释为什么会发生这种情况以及我该如何解决它吗?
谢谢
【问题讨论】:
标签: xml python-2.7 export-to-csv