我有一列填充了这样的值:
t=OrderedDict([('attributes', OrderedDict([('type', 'Marks'), ('url', 'data/v38.0')])), ('Account', OrderedDict([('attributes', OrderedDict([('type', 'Account'), ('url', 'data/v38.0')])), ('ID', 'A200')]))])
我尝试使用以下内容提取“ ID”的最后一个值:
StudentID= t[0]['ID']
但是它抛出一个错误。访问“ ID”值“ A200”的正确方法是什么?
答案 0 :(得分:2)
尝试StudentID = t['Account']['ID']
。
Python 3.6.7 (default, Oct 22 2018, 11:32:17)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from collections import OrderedDict
>>> t = OrderedDict([('attributes', OrderedDict([('type', 'Marks'), ('url', 'data/v38.0')])), ('Account', OrderedDict([('attributes', OrderedDict([('type', 'Account'), ('url', 'data/v38.0')])), ('ID', 'A200')]))])
>>> t['Account']['ID']
'A200'
# a bit more
>>> from pprint import pprint
>>> pprint(t)
OrderedDict([('attributes',
OrderedDict([('type', 'Marks'), ('url', 'data/v38.0')])),
('Account',
OrderedDict([('attributes',
OrderedDict([('type', 'Account'),
('url', 'data/v38.0')])),
('ID', 'A200')]))])
答案 1 :(得分:1)
应该这样访问它:
t['Account']['ID']
答案 2 :(得分:1)
访问此文件的正确方法是:
t['Account']['ID']
答案 3 :(得分:0)
尝试打印对象以查看其设置:
for key, value in t.items():
print('\t', key)
for subkey, subvalue in value.items():
print('\t\t', subkey, subvalue)
这将显示:
attributes
type Marks
url data/v38.0
Account
attributes OrderedDict([('type', 'Account'), ('url', 'data/v38.0')])
ID A200
因此,帐户是第二项,而不是第一项。但是,OrderedDicts仍然不会按索引而是按键来获取项目。这是因为整数是有效的键,例如,如果t看起来像t [0]不一定是插入的第一项:
t=OrderedDict([(1, 'thing1'), (0, 'thing2')])
因此访问此项目的正确方法是:
t['Account']['ID']