List of objects to JSON with Python

前端 未结 3 859
鱼传尺愫
鱼传尺愫 2020-12-05 02:24

I have a problem converting Object instances to JSON:

ob = Object()

list_name = scaping_myObj(base_url, u, number_page)

for ob in list_name:
          


        
3条回答
  •  孤城傲影
    2020-12-05 02:57

    You can use a list comprehension to produce a list of dictionaries, then convert that:

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

    or use a default function; json.dumps() will call it for anything it cannot serialise:

    def obj_dict(obj):
        return obj.__dict__
    
    json_string = json.dumps(list_name, default=obj_dict)
    

    The latter works for objects inserted at any level of the structure, not just in lists.

    Personally, I'd use a project like marshmallow to handle anything more complex; e.g. handling your example data could be done with

    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)
    

提交回复
热议问题