我尝试使用json.dumps()将jthon对象打印为json
该对象是来自keystoneclient.v2_0.client模块的租户对象。
如果我直接打印对象,我会得到:
<Tenant {u'description': u'', u'enabled': True, u'id': u'dea3061f17df49a1a22f105d5e9bc971', u'name': u'Tets Lab 01'}>
将它传递给json.dumps失败,即
my_tenant = keystone.tenants.get('dea3061f17df49a1a22f105d5e9bc971')
json.dumps(my_tenant)
错误表明它不可序列化 文件&#34; /usr/lib/python2.7/json/encoder.py" ;,第178行,默认情况下 引发TypeError(repr(o)+&#34;不是JSON可序列化的&#34;)
除了解析从对象返回的字符串之外,是否有人知道我是否可以轻松地将其转换为JSON输出?
答案 0 :(得分:4)
我最后通过以下代码: https://github.com/openstack/python-keystoneclient
Tenant类扩展了一个基本资源,它实现了一个to_dict()方法。 这将以json格式返回数据。 https://github.com/openstack/python-keystoneclient/blob/master/keystoneclient/openstack/common/apiclient/base.py
my_tenant = keystone.tenants.get('dea3061f17df49a1a22f105d5e9bc971')
json.dumps(my_tenant.to_dict())
答案 1 :(得分:0)
这应该做
json.dumps(vars(my_tenant))