如何将动态python对象转换为json?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (231)

如何将动态python对象转换为JSON。该对象必须能够具有多级对象子对象。例如:

class C(): pass
class D(): pass

c = C()
c.dynProperty1 = "something"
c.dynProperty2 = { 1, 3, 5, 7, 9 }
c.d = D()
c.d.dynProperty3 = "d.something"

# ... convert c to json ...

使用python 2.6的代码如下:

import json

class C(): pass
class D(): pass

c = C()
c.what = "now?"
c.now = "what?"
c.d = D()
c.d.what = "d.what"

json.dumps(c.__dict__)

产生以下错误:

TypeError: <__main__.D instance at 0x99237ec> is not JSON serializable
提问于
用户回答回答于

指定default=参数(doc):

json.dumps(c, default=lambda o: o.__dict__)
用户回答回答于
json.dumps(c.__dict__)

这会给你一个通用的JSON对象

扫码关注云+社区

领取腾讯云代金券