'dict'对象没有属性'id' [英] 'dict' object has no attribute 'id'

查看:92
本文介绍了'dict'对象没有属性'id'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的代码。我正在尝试将xml字符串转换为要在html模板中显示的python列表。

this is my code. I am trying to translate xml string into python list to be shown in html template.

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)

但我遇到错误:

'dict' object has no attribute 'id'

它是第71行中的task.id

and it is task.id in line 71

您认为我有问题吗在第65行中:

do you think i have a problem with this in line 65:

'id': obj.get("pk"


推荐答案

您正在错误地访问字典。您需要使用带字符串'id'的下标,示例-

You are accessing the dictionary wrongly. You need to use subscript with string 'id' , Example -

taskViewModel = TaskViewModel(task['id'], True)

这篇关于'dict'对象没有属性'id'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆