我試圖有一個體面的業務層是服務器端。每個新業務類別可能存儲在數據庫中的工作量較少。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