Python “dict”对象没有属性“id”
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/32240718/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
'dict' object has no attribute 'id'
提问by James Reid
this is my code. I am trying to translate xml string into python list to be shown in html template.
这是我的代码。我正在尝试将 xml 字符串转换为要在 html 模板中显示的 python 列表。
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>"
58 self.xmlData = ET.fromstring(self.db.task_xml)
59
60 self.task_list = []
61 taskList = []
62 for obj in self.xmlData.iter("object"):
63 parent_task_id = obj.find("field[@name='parent_task_id']").text
64 if parent_task_id == EMPTY_UUID:
65 taskList.append({'id': obj.get("pk"),
66 'name': obj.find("field[@name='name']").text,
67 'parent_task_id': parent_task_id ,
68 })
69 # Apprend taskList:
70 for task in taskList:
71 taskViewModel = TaskViewModel(task.id, True)
72 self.task_list.append(taskViewModel)
but I am getting error:
但我收到错误:
'dict' object has no attribute 'id'
and it is task.id in line 71
它是第 71 行的 task.id
do you think i have a problem with this in line 65:
你认为我在第 65 行有问题吗:
'id': obj.get("pk"
采纳答案by Anand S Kumar
You are accessing the dictionary wrongly. You need to use subscript with string 'id'
, Example -
您错误地访问了字典。您需要将下标与 string 一起使用'id'
,例如 -
taskViewModel = TaskViewModel(task['id'], True)