【问题标题】:'dict' object has no attribute 'id''dict' 对象没有属性 'id'
【发布时间】:2015-08-27 04:26:33
【问题描述】:

这是我的代码。我正在尝试将 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)

但我收到错误:

'dict' object has no attribute 'id'

它是第 71 行中的 task.id

你认为我在第 65 行有这个问题吗:

'id': obj.get("pk"

【问题讨论】:

  • 你应该使用task.id而不是task['id']

标签: python xml django


【解决方案1】:

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

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

【讨论】:

  • 有什么方法可以加你或者关注你在github、fb什么的吗?
  • 我在 github 上不是很活跃,虽然我有一个帐户,如果你愿意 - github.com/anandkr07
猜你喜欢
  • 2022-11-04
  • 2017-03-30
  • 2012-01-12
  • 2021-03-08
  • 2017-05-12
  • 2019-03-11
  • 1970-01-01
  • 1970-01-01
  • 2018-09-02
相关资源
最近更新 更多