【问题标题】:Serialize list of objects to JSON将对象列表序列化为 JSON
【发布时间】:2016-12-22 02:30:57
【问题描述】:

我正在尝试序列化对象列表。 我正在进行 HTTP API 调用。该调用返回一个对象列表(例如 A 类)。我无权访问 A 类的定义。 我尝试使用转储

print ("Result is: %s", json.dumps(result_list.__dict__))

这会打印一个空结果。但是,如果我要打印 result_list 我得到低于输出

{
    "ResultList": [{
        "fieldA": 0,
        "fieldB": 1.46903594E9,
        "fieldC": "builder",
        "fieldD": "StringA/StringB-Test-124.35.4.24"
    }]
}

有没有一种方法可以将对象与它返回的任何字段转换为 json。

【问题讨论】:

  • json.dumps(result_list) 应该给你一个 JSON 数组(如果它是一个列表)
  • 这个问题有很多令人困惑的地方,在我看来你应该重新审视这里的一些概念(类、对象、json)。无论如何,你真的想在对象本身上调用json.dumps()json.dumps(result_list)
  • 如果我尝试json.dumps(result_l‌​ist),它会给我一个例外,说 result_list 不是 JSON Serializable
  • 如果这是您从打印results_list 得到的结果,则意味着它是字典而不是列表——这就是它没有__dict__ 的原因。这也意味着json.dumps(result_list.__dict__) 将引发AttributeError: 'dict' object has no attribute '__dict__' 不会如您所声称的那样产生空结果。

标签: python json serialization


【解决方案1】:

请详细说明result_list 是实例的类的外观(例如,发布类代码)。 json.dumps(result_list) 可能不起作用,因为 result_list 不是普通字典,而是类的对象。您需要转储保存数据结构的变量(即与打印调用中显示的相同)。

【讨论】:

  • 这看起来像是评论,而不是答案。
猜你喜欢
  • 1970-01-01
  • 2016-05-30
  • 2012-03-07
  • 2023-03-13
  • 1970-01-01
  • 2022-12-13
  • 2010-10-08
相关资源
最近更新 更多