Python 字典 "没有属性 '__getitem__

0 投票
1 回答
948 浏览
提问于 2025-04-18 03:03

我刚接触Python,找不到这个问题的答案。我想用字典像其他语言中的哈希表或关联数组,不知道这样做是否正确。

现在我在做:

data['person'] = {'birthday': '01-01-1980'}

补充说明:data 是通过 json.loads(response.text) 返回的一个 dict

这段代码抛出了一个 object has no attribute '__getitem__' 的错误。查了一下StackOverflow,发现我需要从我的unicode方法返回一个字符串,但这些只是普通的字典,没有什么特别的。

Python版本是v2.7.4

Request Method: GET
Request URL:    http://localhost:8000/url/returning/json
Django Version: 1.5.2
Exception Type: TypeError
Exception Value:    
'Person' object has no attribute '__getitem__'
Exception Location: /path/to/error/file in next_work_item, line 356
Python Executable:  /path/to/project/.venv/bin/python
Python Path:    
['/path/to/project/',
 '/opt/pycharm-3.1.1/helpers/pydev',
 '/path/to/project/.venv/local/lib/python2.7/site-packages/distribute-0.7.3-py2.7.egg',
 '/path/to/project/.venv/lib/python2.7/site-packages/distribute-0.7.3-py2.7.egg',
 '/path/to/project/',
 '/path/to/project/.venv/lib/python2.7',
 '/path/to/project/.venv/lib/python2.7/plat-x86_64-linux-gnu',
 '/path/to/project/.venv/lib/python2.7/lib-tk',
 '/path/to/project/.venv/lib/python2.7/lib-old',
 '/path/to/project/.venv/lib/python2.7/lib-dynload',
 '/usr/lib/python2.7',
 '/usr/lib/python2.7/plat-x86_64-linux-gnu',
 '/usr/lib/python2.7/lib-tk',
 '/path/to/project/.venv/local/lib/python2.7/site-packages',
 '/path/to/project/.venv/lib/python2.7/site-packages',
 '/path/to/project/.venv/local/lib/python2.7/site-packages/IPython/extensions',
 '/path/to/project/sub/project,
 '/path/to/project/sub']

1 个回答

1

这个代码运行得很好:

#!/usr/local/cpython-2.7/bin/python

data = {}
data['person'] = {'birthday': '01-01-1980'}

...所以在你的情况下,数据可能不是一个字典。提供一个简单的可重复示例可能会有所帮助。

撰写回答