使用 Python 将对象列表转为 JSON

2024-05-17

我在转换时遇到问题Object实例到 JSON:

ob = Object()

list_name = scaping_myObj(base_url, u, number_page)

for ob in list_name:
   json_string = json.dumps(ob.__dict__)
   print json_string

In list_name我有一个清单Object实例。

json_string返回,例如:

{"city": "rouen", "name": "1, 2, 3 Soleil"}
{"city": "rouen", "name": "Maman, les p'tits bateaux"}

但我想要 1 个 JSON 字符串,其中包含列表中的所有信息:

[{"city": "rouen", "name": "1, 2, 3 Soleil"}, {"city": "rouen", "name": "Maman, les p'tits bateaux"}]

您可以使用列表理解来生成字典列表,然后将其转换:

json_string = json.dumps([ob.__dict__ for ob in list_name])

或使用default功能;json.dumps()将为任何无法序列化的内容调用它:

def obj_dict(obj):
    return obj.__dict__

json_string = json.dumps(list_name, default=obj_dict)

后者适用于插入到结构的任何级别的对象,而不仅仅是列表中的对象。

就我个人而言,我会使用这样的项目棉花糖 https://marshmallow.readthedocs.io/处理更复杂的事情;例如处理您的示例数据可以通过

from marshmallow import Schema, fields

class ObjectSchema(Schema):
    city = fields.Str()
    name = fields.Str()

object_schema = ObjectSchema()
json_string = object_schema.dumps(list_name, many=True)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Python 将对象列表转为 JSON 的相关文章

随机推荐