当前位置: 首页 > 面试题库 >

将动态python对象转换为json

罗睿识
2023-03-14
问题内容

我需要知道如何将动态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

我不知道用户可能放入哪种子对象c。是否有足够聪明的解决方案来检测属性是否是对象并__dict__自动对其进行解析?

更新 为在上包含子对象c


问题答案:

指定default=参数(doc):

json.dumps(c, default=lambda o: o.__dict__)


 类似资料:
  • 我有这个方法: 我是这样称呼它的: 我想将< code>Object转换为该方法中的< code>Entity1。我该怎么做? 编辑 我的问题是如何将转换为类的实例?

  • 问题内容: 我有一个JSON对象,我将其转换为并在此处进行一些处理。稍后,我想转换相同的缓冲区数据以转换为有效的JSON对象。 我正在研究Node V6.9.1 下面是我尝试过的代码,但是当我转换回JSON却无法打开该对象时遇到了。 所以我尝试使用检查方式打印整个对象 如果我尝试像数组一样读取它 我也尝试解析它抛出 我需要将其视为我创建的真实对象(我的意思是像上面声明的那样)。 请帮忙.. 问题答

  • 我正试图将下面的json转换成java bean,需要你的帮助 Sort.json 我的豆子看起来像 我的测试课是 我看到的错误是 请建议:

  • 问题内容: 是否可以将json字符串(例如,从twitter搜索json服务返回的json字符串)转换为简单的字符串对象。这是从json服务返回的数据的一小部分表示形式: 可以说我以某种方式将结果存储在某个变量中,例如 obj 。我希望获得适当的值,如下所示: 我已经尝试过使用,但是它给了我一个错误提示 问题答案: 我已经尝试过使用,但是它给了我一个错误提示 要从字符串加载,请使用(注意“ s”)

  • 问题内容: 如何加载YAML文件并将其转换为Python JSON对象? 我的YAML文件如下所示: 问题答案: 你可以使用PyYAML 并在ipython控制台中:

  • 问题内容: 我需要加载XML文件并将内容转换为面向对象的Python结构。我要这样: 并将其变成这样: XML数据将具有比这更复杂的结构,并且我无法对元素名称进行硬编码。解析时需要收集属性名称并将其用作对象属性。 如何将XML数据转换为Python对象? 问题答案: 值得一看。 或者以另一种方式构建xml结构: 输出: