我试图有一个体面的业务层是服务器端。每个新业务类别可能存储在数据库中的工作量较少。pythonic json序列化
但是,它不能很好地执行转换为json。它适用于简单的python对象,使用json.dumps(self.__dict__)
。但是一个简单的python对象列表并没有很好地序列化为json。
当执行列表我尝试return json.dumps([x.to_json() for x in self.my_list_items])
的JSON序列化,但它输出其它附加双引号,和\”列表中的每个项目:["{\"completed\": 0, \"id\": 1, \"name\": \"labelOne\"}", "{\"completed\": 0, \"id\": 2, \"name\": \"Label2\"}"]
这是我使用的代码:
class JSONizable(object):
def to_json(self):
return json.dumps(self.__dict__)
class Task(JSONizable):
def __init__(self):
self.id = -1
self.name = "new task"
self.completed = 1
def load_sql(self, sql):
#do things
class Tasks(JSONizable):
def __init__(self):
self.tasks=[]
def load_sql(self,sql):
#do things
def to_json(self):
return json.dumps([x.to_json() for x in self.tasks]) # things go bad here
你可以建议进行JSON序列化的Python对象更Python的方式,当这样的对象包含的项目列表?
您正在编码为JOSN,然后转储JSON。我想你只是想:'返回json.dumps(self.tasks)' – ckhan
@ckhan,如果我这样做,json模块宣称这个任务不是json序列化的。 –
查看编写自定义JSON编码器的文档:http://docs.python.org/2/library/json.html#json.JSONEncoder – ckhan