我使用以下的json数据创建了一个命名空间,学习自这个SO答案。
但是如果“name”需要从一个变量中获取,我该如何访问它?
>>> from __future__ import print_function
>>> import json
>>> from types import SimpleNamespace as Namespace
>>> data = '{"name": "John Smith", "hometown": {"name": "New York", "id": 123}}'
>>> x = json.loads(data, object_hook=lambda d: Namespace(**d))
>>> x.name
'John Smith'
但是如果“name”需要从一个变量中获取,我该如何访问它?
>>> foo='name'
>>> x.foo
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'types.SimpleNamespace' object has no attribute 'foo'
>>>
SimpleNamespace
呢? - abarnert