【发布时间】:2016-12-29 20:56:41
【问题描述】:
for tm in teamtree.iter('team_members'):
我正在尝试使用上述函数将这些字段输出到 CSV。 xml 数据存储在一个名为 (projectDetJoined) 的变量中
我收到了这个错误。
Traceback (most recent call last):
File "10Other.py", line 481, in <module>
parseXMLTaskDetails()
File "10Other.py", line 355, in parseXMLTaskDetails
taskcid = (t.find('cid').text)
AttributeError: 'NoneType' object has no attribute 'text'
项目存在于 xml 数据中。
任何想法为什么它没有找到它?我有一个类似的函数,它的结构相同但确实有效。
【问题讨论】:
-
在您的 XML 中,
team_members元素没有cid等子元素。它有item子元素。也许你的意思是for tm in teamtree.iterfind('team_members/item')。如果某些项目的 CSV 标头没有不同的大小写,您可以在 for 循环正文中将tm.findtext映射到它们上以提取要写入的值。不要一直重新打开文件进行追加,而是将 XML 提取移动到最初创建文件和 csv-writer 的 with 块。最后的csvfile.close()也是多余的。 -
谢谢。那行得通。根据您的建议优化了代码。非常感谢。直到现在才知道 iterfind 是什么。不知道为什么对这个问题投反对票。但无论如何,这工作得很好,现在我知道了。再次感谢。