我在将 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
在 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)
后者适用于在结构的任何级别插入的对象,而不仅仅是在列表中。
就我个人而言,我会使用像 marshmallow 这样的项目处理更复杂的事情;例如处理您的示例数据可以使用
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)
关于python - 使用 Python 转换为 JSON 的对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26033239/