sqlachemy查詢集轉化字典或者json格式的方法

方法一
在model中加入

def to_dict(self):
	return {c.name: getattr(self, c.name) for c in self.__table__.columns}

在服務中調用

def all_to_json(all_vendors):
	v = [ven.to_dict() for ven in all_vendors]
	return v
# 查詢結果調用
item = all_to_json(objs)
# 或者直接調用to_dict()
item = []
for obj in objs:
	item.append(obj.to_dict())

方法二
在model中加入

def to_json(self):
	dict = self.__dict__
	if "_sa_instance_state" in dict:
	del dict["_sa_instance_state"]
	return dict

在服務中調用同上
json的坑

TypeError: datetime.datetime(2020, 6, 24, 10, 11, 32) is not JSON serializable

解決方法

import json
import datetime
# 使json支持datetime
json.JSONEncoder.default = lambda self, obj: (obj.isoformat() if isinstance(obj, datetime.datetime) else None)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章