为了账号安全,请及时绑定邮箱和手机立即绑定

SQLAlchemy 对象进行 JSON 序列化, 有什么好的方法( 集思广益 )?

SQLAlchemy 对象进行 JSON 序列化, 有什么好的方法( 集思广益 )?

ABOUTYOU 2019-02-25 17:03:08
2016/11/12 问题 将 SQLAlchemy 对象, 转化为Python-dict, 或者序列化成 JSON, 主要实现: to_dict() to_json() 我自己实现了一种做法, 但是总感觉还有些问题( 但是又说不清楚 ), 大家有什么比较好的办法? 相关代码 将这两个方法直接绑定到Base上面, 则继承Base的类, 都能使用 def _gen_tuple(self): def convert_datetime(value): if value: return value.strftime("%Y-%m-%d %H:%M:%S") else: return "" for col in self.__table__.columns: if isinstance(col.type, DateTime): value = convert_datetime(getattr(self, col.name)) elif isinstance(col.type, Numeric): value = float(getattr(self, col.name)) else: value = getattr(self, col.name) yield (col.name, value) def to_dict(self): return dict(self._gen_tuple()) def to_json(self): return json.dumps(self.to_dict()) Base._gen_tuple = _gen_tuple Base.to_dict = to_dict Base.to_json = to_json
查看完整描述

3 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

为什么不用 pickle? 还是说因为必须序列化成 JSON?

查看完整回答
反对 回复 2019-03-04
?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

查看完整回答
反对 回复 2019-03-04
  • 3 回答
  • 0 关注
  • 522 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信