将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"}
但我只想要一个JSON字符串,其中包含列表中的所有信息:
[{"city": "rouen", "name": "1, 2, 3 Soleil"}, {"city": "rouen", "name": "Maman, les p'tits bateaux"}]
与@MartijnPieters的答案类似,如果不想创建单独的函数,可以将json.dumps
default
参数与lambda一起使用:json.dumps(obj, default = lambda x: x.__dict__)
这个问题的另一个可能的解决方案是jsonpickle,它可以用来将任何Python对象转换为JSON(不仅仅是简单的列表)。
从jsonpickle主页:
执行转换很简单:
您可以使用列表理解来生成字典列表,然后将其转换为:
或者使用一个
default
函数;json.dumps()
将为它无法序列化的任何内容调用它:后者适用于在结构的任何级别插入的对象,而不仅仅是在列表中插入的对象。
就我个人而言,我会使用像marshmallow这样的项目来处理任何更复杂的事情;例如,处理示例数据可以使用
相关问题 更多 >
编程相关推荐