python处理json列表,使用Python转换为JSON的对象列表

本文档介绍了如何将一个包含多个对象实例的列表转换为单一的JSON字符串。传统的`json.dumps()`方法会返回每个对象的独立JSON表示。通过使用列表推导式或者定义一个默认函数,可以将所有对象的属性组合成一个JSON数组。推荐使用marshmallow库来处理更复杂的数据序列化,例如处理示例数据中的城市和名称信息。
摘要由CSDN通过智能技术生成

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:

json_string = json.dumps(ob.__dict__)

print json_string

In list_name I have a list of Object instances.

json_string return, for example:

{"city": "rouen", "name": "1, 2, 3 Soleil"}

{"city": "rouen", "name": "Maman, les p'tits bateaux"}

But I would like just 1 JSON string with all the info in a list:

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

解决方案

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值