前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python __proxy__ is not JSON serializable

python __proxy__ is not JSON serializable

作者头像
小贝壳
发布2020-03-05 15:00:35
1.2K0
发布2020-03-05 15:00:35
举报
文章被收录于专栏:贝塔博客贝塔博客

详细错误如下

代码语言:javascript
复制
TypeError at /
Object of type __proxy__ is not JSON serializable
Request Method: GET
Request URL:    http://127.0.0.1:8000/
Django Version: 2.2.2
Exception Type: TypeError
Exception Value:    
Object of type __proxy__ is not JSON serializable
Exception Location: /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/encoder.py in default, line 179
Python Executable:  /Users/panjing/PycharmProjects/simpleui_demo/venv/bin/python
Python Version: 3.7.1
Python Path:    
['/Users/panjing/PycharmProjects/simpleui_demo',
 '/Applications/PyCharm.app/Contents/helpers/pydev',
 '/Users/panjing/PycharmProjects/simpleui_demo',
 '/Applications/PyCharm.app/Contents/helpers/pycharm_display',
 '/Applications/PyCharm.app/Contents/helpers/third_party/thriftpy',
 '/Applications/PyCharm.app/Contents/helpers/pydev',
 '/Users/panjing/Library/Caches/PyCharm2019.1/cythonExtensions',
 '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip',
 '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7',
 '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload',
 '/Users/panjing/PycharmProjects/simpleui_demo/venv/lib/python3.7/site-packages',
 '/Users/panjing/PycharmProjects/simpleui_demo/venv/lib/python3.7/site-packages/setuptools-39.1.0-py3.7.egg',
 '/Users/panjing/PycharmProjects/simpleui_demo/venv/lib/python3.7/site-packages/xadmin-0.6.1-py3.7.egg',
 '/Users/panjing/PycharmProjects/simpleui_demo/venv/lib/python3.7/site-packages/six-1.12.0-py3.7.egg',
 '/Users/panjing/PycharmProjects/simpleui_demo/venv/lib/python3.7/site-packages/future-0.17.1-py3.7.egg',
 '/Users/panjing/PycharmProjects/simpleui_demo/venv/lib/python3.7/site-packages/django_reversion-3.0.4-py3.7.egg',
 '/Applications/PyCharm.app/Contents/helpers/pycharm_matplotlib_backend',
 '/Users/panjing/PycharmProjects/simpleui_demo/venv/lib/python3.7/site-packages/odf',
 '/Users/panjing/PycharmProjects/simpleui_demo/venv/lib/python3.7/site-packages/odf',
 '/Users/panjing/PycharmProjects/simpleui_demo/venv/lib/python3.7/site-packages/odf',
 '/Users/panjing/PycharmProjects/simpleui_demo/venv/lib/python3.7/site-packages/odf',
 '/Users/panjing/PycharmProjects/simpleui_demo/venv/lib/python3.7/site-packages/odf',
 '/Users/panjing/PycharmProjects/simpleui_demo/venv/lib/python3.7/site-packages/odf',
 '/Users/panjing/PycharmProjects/simpleui_demo/venv/lib/python3.7/site-packages/odf']

原因 对象是Promise,所以直接json序列话会报错

加一个自定义的解码类就可以了

代码语言:javascript
复制
from django.utils.functional import Promise
from django.core.serializers.json import DjangoJSONEncoder

class LazyEncoder(DjangoJSONEncoder):
    def default(self, obj):
        if isinstance(obj, Promise):
            return force_text(obj)
        return super(LazyEncoder, self).default(obj)


json.dumps(data,cls=DjangoJSONEncoder)      

参考资料

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-06-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档