先把对象转换字典:

class User(db.Model):__tablename__ = 'user'id = db.Column(db.INTEGER,primary_key=True)login_name = db.Column(db.String(80),unique=True)create_time = db.Column(db.String(80),nullable=False)sex = db.Column(db.String(80),nullable=False)cellphone = db.Column(db.String(80),nullable=False)cname = db.Column(db.String(80),nullable=False)password = db.Column(db.String(80),nullable=False)head_portrait = db.Column(db.String(80),nullable=False)birthday = db.Column(db.String(80),nullable=False)stature = db.Column(db.String(80),nullable=False)weight = db.Column(db.String(80),nullable=False)medical_history = db.Column(db.String(80),nullable=False)update_time = db.Column(db.String(80),nullable=False)location = db.Column(db.String(80),nullable=False)blood_glucose = db.Column(db.String(80),nullable=False)lastLoginTime = db.Column(db.String(80),nullable=False)newUploadTime = db.Column(db.String(80),nullable=False)identity = db.Column(db.String(80),nullable=False)deviceid = db.Column(db.String(80),nullable=False)head_portrait_time = db.Column(db.String(80),nullable=False)accid = db.Column(db.String(80),nullable=False)token = db.Column(db.String(80),nullable=False)wallet = db.Column(db.String(80),nullable=False)idcardNum = db.Column(db.String(80),nullable=False)faith = db.Column(db.String(80),nullable=False)nation = db.Column(db.String(80),nullable=False)status = db.Column(db.String(80),nullable=False)country_code = db.Column(db.String(80),nullable=False)time_diff = db.Column(db.String(80),nullable=False)final_phone = db.Column(db.String(80),nullable=False)enterprise_id = db.Column(db.String(80),nullable=False)thirdUserid = db.Column(db.String(80),nullable=False)isDoctor = db.Column(db.String(80),nullable=False)isNurse = db.Column(db.String(80),nullable=False)imAccid = db.Column(db.String(80),nullable=False)payPassWord = db.Column(db.String(80),nullable=False)isCancel = db.Column(db.String(80),nullable=False)recommendUser = db.Column(db.String(80),nullable=False)def keys(self):return ('id','login_name','create_time','sex','cellphone','cname','password','head_portrait','birthday','stature','weight','medical_history','update_time','location','blood_glucose','lastLoginTime','newUploadTime','identity','deviceid','head_portrait_time','accid','token','wallet','idcardNum','faith','nation','status','country_code','time_diff','final_phone','enterprise_id','thirdUserid','isDoctor','isNurse','imAccid','payPassWord','isCancel','recommendUser')def __getitem__(self, item):return getattr(self, item)

很关键的俩个方法:

def keys(self):

def __getitem__(self,item)

然后调用对象的dict()fang方法。

@app.route('/select_user')
def select_user():# 查询所有用户users_list = User.query.all()list = [dict(i) for i in users_list]return json.dumps(list,cls=DateEncoder,indent=4)

给前端返回去一个json,又出问题:

提示:ypeError: Object of type 'bytes' is not JSON serializable

import json
class MyEncoder(json.JSONEncoder):def default(self, obj):"""只要检查到了是bytes类型的数据就把它转为str类型:param obj::return:"""if isinstance(obj, bytes):return str(obj, encoding='utf-8')return json.JSONEncoder.default(self, obj)

解决了,网上找到的

又提示:Object of type 'datetime' is not JSON serializable

import json
import datetime
class DateEncoder(json.JSONEncoder):def default(self, obj):if isinstance(obj, datetime.datetime):return obj.strftime('%Y-%m-%d %H:%M:%S')elif isinstance(obj, datetime.date):return obj.strftime("%Y-%m-%d")else:return json.JSONEncoder.default(self, obj)

解决掉了,最后想着结合一下:

import json
import datetime
class DateEncoder(json.JSONEncoder):def default(self, obj):if isinstance(obj, datetime.datetime):return obj.strftime('%Y-%m-%d %H:%M:%S')elif isinstance(obj, datetime.date):return obj.strftime("%Y-%m-%d")elif isinstance(obj, bytes):return str(obj, encoding='utf-8')else:return json.JSONEncoder.default(self, obj)

就彻底好了,

瞬间好了,很欣慰撒。。。。。。。。。。。。。。。

贴个图,下班回家。

flask查询User,返回对象列表,提示ypeError: Object of type ‘bytes‘ is not JSON serializable解决办法相关推荐

  1. 返回 JSON 格式数据报错:TypeError: Object of type set is not JSON serializable

    在做 flask 项目的时候需要返回一个 JSON 数据,运行的过程中却报错:TypeError: Object of type set is not JSON serializable 报错位置如下 ...

  2. Object of type 'ListSerializer' is not JSON serializable “listserializer”类型的对象不可JSON序列化...

    Object of type 'ListSerializer' is not JSON serializable "listserializer"类型的对象不可JSON序列化 一般 ...

  3. Flask API TypeError: Object of type 'Response' is not JSON serializable

    Flask API TypeError: Object of type 'Response' is not JSON serializable 错误代码: session['image'] = str ...

  4. windows不能查询组策略对象列表 解决方案

    域控事件日志有错误提示windows 不能查询组策略对象列表,下面列出解决方法: 解决: 1. 打开 C:\WINDOWS\SYSVOL\domain\Policies\{6AC1786C-016F- ...

  5. Ubuntu20.4下打开WPS提示缺失字体“Symbol、Wingdings、Wingdings 2...“的解决办法

    Ubuntu20.4下打开WPS提示缺失字体"Symbol.Wingdings.Wingdings 2..."的解决办法 软件环境: ubuntu : Ubuntu 20.04.1 ...

  6. WIN10的联想小新VMcare安装Centos7虚拟机时提示“Intel VT-x处于禁用状态”有以下几种解决办法

    WIN10的联想小新VMcare安装Centos7虚拟机时提示"Intel VT-x处于禁用状态"有以下几种解决办法: 一.开启虚拟化服务(此类方法网上有很多可以自己百度详细教程) ...

  7. win10未开启没有运行无线服务器,win10系统提示共享无线自动配置服务没有自动运行的解决办法...

    win10系统提示共享无线自动配置服务没有自动运行的解决办法? win10系统有很多人都喜欢使用,我们操作的过程中常常会碰到win10系统提示共享无线自动配置服务没有自动运行的问题.如果遇到win10 ...

  8. 使用git时ssh提示“Load key /home/devid/.ssh/id_rsa: bad permissions”的解决办法

    2019独角兽企业重金招聘Python工程师标准>>> 使用git时ssh提示"Load key "/home/devid/.ssh/id_rsa": ...

  9. Laravel5.5执行 npm run dev时报错,提示cross-env找不到(not found)的解决办法

    Laravel 5.4 Mix & Laravel5.5执行 npm run dev时报错,提示cross-env找不到(not found)的解决办法 首先进入package.json文件, ...

最新文章

  1. shell-sed命令详解(转)
  2. 《深度学习的数学》二刷总结
  3. Oracle为JDK 8寻求社区参与
  4. IDEA Terminal替换成Git Bash_05
  5. JS中Date.parse()和Date.UTC()返回值不一致
  6. 4010-基于邻接矩阵的边的删除(C++,附思路)
  7. MySQL如何安装离线_mysql8.0.2离线安装配置方法图文教程
  8. (3)<meta>标签
  9. 编译原理基础---思维导图
  10. r语言lm函数_如果R语言自带函数不能用,那我就自己写一个
  11. 甘特图制作_使用excel制作甘特图其实很简单,仅需4步搞定,项目进度一目了然...
  12. 软件测试,我是女生适合吗?我30岁了能学会吗?我大专毕业能做吗?
  13. Bailian2925 大整数的因子【模除】
  14. vue组件内数值做watch监听,首次监听不到的问题
  15. 汽车票售票系统 php,客车网上售票系统(2)
  16. 知识付费系统源码基于PHP开源的网站内容付费源码|知识付费小程序源码
  17. 论文笔记 - 《Deep Learning》(Yann LeCun Yoshua Bengio Geoffrey Hinton)经典
  18. java学习方法和经验
  19. Zigbee(3) ---- 无线温度检测试验
  20. Leetcode 143 链表对折

热门文章

  1. 递归5--汉诺塔问题的栈实现
  2. iOS 应用程序的生命周期浅析
  3. [转]在Visual Studio 2013/2015中设计UML活动图
  4. Struts+iBatis+Spring+mysql整合开发
  5. Java JDBC初步
  6. mysql ip v4 v6_mysql IPv4 IPv6
  7. .net 批量更新_云子批量命名电脑版|云子批量命名PC版下载_v2021
  8. 计算机考研哪个专业代码少,考研专业代码到底是什么意思
  9. 为什么let在php中报错,ES6系列之声明变量let与const
  10. emacs java自动import,在Java模式如何我配置Emacs,这样就不会自动对齐方法参数