【发布时间】:2015-07-27 01:46:08
【问题描述】:
我有这个从 API 获得的嵌套字典。
response_body = \
{
u'access_token':u'SIF_HMACSHA256lxWT0K',
u'expires_in':86000,
u'name':u'Gandalf Grey',
u'preferred_username':u'gandalf',
u'ref_id':u'ab1d4237-edd7-4edd-934f-3486eac5c262',
u'refresh_token':u'eyJhbGciOiJIUzI1N',
u'roles':u'Instructor',
u'sub':{
u'cn':u'Gandalf Grey',
u'dc':u'7477',
u'uid':u'gandalf',
u'uniqueIdentifier':u'ab1d4237-edd7-4edd-934f-3486eac5c262'
}
}
我使用以下方法将其转换为 Python 对象:
class sample_token:
def __init__(self, **response):
self.__dict__.update(response)
并像这样使用它:
s = sample_token(**response_body)
之后,我可以使用s.access_token、s.name 等访问值。但c.sub 的值也是一个字典。如何使用这种技术获取嵌套字典的值?即s.sub.cn 返回Gandalf Grey。
【问题讨论】:
-
您想这样做的原因是什么?为什么不只是
response_body['sub']['cn']? -
@MattDMo 数据已经在 python dict 中了。这个问题其实和json本身没什么太大关系,只是嵌套字典而已。
-
@viraptor 好吧,我正在尝试一些替代方案。
-
@viraptor 你说得对,我是在听他的话。来晚了……
-
@MattDMo 我也改变了它。我希望它现在很好。
标签: python json dictionary