我将Object实例转换为JSON时遇到问题:
Object
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
在list_name我有一个Object实例列表。
list_name
json_string 返回,例如:
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()将调用它无法序列化的任何内容:
default
json.dumps()
def obj_dict(obj): return obj.__dict__ json_string = json.dumps(list_name, default=obj_dict)
后者适用于在结构的任何级别插入的对象,而不仅仅是在列表中。
就个人而言,我将使用棉花糖之类的项目来处理更复杂的事情。例如处理您的示例数据可以用
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)