您好我收到了错误消息。
这是错误消息
'NoneType' object has no attribute 'text'
这是我的代码
self.task_xml = "<?xml version="1.0" encoding="utf-8"?>
<django-objects version="1.0">
<object model="task.task" pk="31">
<field name="name" type="CharField">New Task</field>
<field name="parent_task_id" type="IntegerField">0</field>
</object>
<object model="task.task" pk="32">
<field name="name" type="CharField">New Task</field>
<field name="parent_task_id" type="IntegerField">0</field>
</object>
<object model="task.task" pk="33">
<field name="name" type="CharField">New Task</field>
<field name="parent_task_id" type="IntegerField">31</field>
</object>
<object model="task.task" pk="34">
<field name="name" type="CharField">New Task</field>
<field name="parent_task_id" type="IntegerField">31</field>
</object>
</django-objects>"
self.xmlData = ET.fromstring(self.task_xml)
self.xmlList = []
for obj in self.xmlData.iter("object"):
self.xmlList.append({'id': obj.find("object[@name='pk']").text,
'name': obj.find("field[@name='name']").text,
'parent_task_id': obj.find("field[@name='parent_task_id']").text,
}
我只想复制来自:
的ID<object model="task.task" pk="33">
我确信这不正确。
'id': obj.find("object[@name='pk']").text
你可以帮我知道正确的语法。
答案 0 :(得分:0)
假设这是lxml.etree
或xml.etree.ElementTree
,你错误地做了,你试图找到一个带有object
节点且带有标签object
的节点name
属性为pk
,这是不正确的。
您想要执行以下操作 -
self.xmlList = []
for obj in self.xmlData.iter("object"):
self.xmlList.append({'id': obj.get('pk'),
'name': obj.find("field[@name='name']").text,
'parent_task_id': obj.find("field[@name='parent_task_id']").text,
}
obj.get('pk')
从对象节点获取pk
属性的值。