【问题标题】:<django.utils.functional.SimpleLazyObject object at 0x2b4d1fe47650> is not JSON serializable<django.utils.functional.SimpleLazyObject object at 0x2b4d1fe47650> 不是 JSON 可序列化的
【发布时间】:2015-09-19 20:46:42
【问题描述】:

我有一个 Django 应用程序。在视图中,我调用了另一个函数(在 stats.py 中),然后它会发出 HTTP POST。

views.py

  from stats import Stat
  a = Stat(example="12345")
  a.use(id='query')

stats.py

   self.data = { example : "12345" }

   req = urllib2.Request(api_url)
   req.add_header('Content-Type', 'application/json')
   response = urllib2.urlopen(req, json.dumps(self.data))

出现的问题是我得到了错误,

<django.utils.functional.SimpleLazyObject object at 0x2b4d1fe47650> is not JSON serializable

Django 回溯

通过查看 Django Traceback,我得到以下信息,

 /prod/tools/lx/views.py in update_input

            a.use(id='query')

     ...

/prod/tools/main/stats.py in log_use

            response = urllib2.urlopen(req, json.dumps(self.data))

     ...

/usr/local/lib/python2.7/json/__init__.py in dumps

            return _default_encoder.encode(obj)

     ...

/usr/local/lib/python2.7/json/encoder.py in encode

            chunks = self.iterencode(o, _one_shot=True)

     ...

/usr/local/lib/python2.7/json/encoder.py in iterencode

            return _iterencode(o, 0)

     ...

/usr/local/lib/python2.7/json/encoder.py in default

            raise TypeError(repr(o) + " is not JSON serializable")

     ...

有什么想法吗?

谢谢,

【问题讨论】:

  • 为什么这被标记下来,并投票赞成关闭?
  • 什么是self.data
  • stats.py 中的类

标签: json django


【解决方案1】:

使用urllib试试这个

import urllib
...
    self.data = { example : "12345", 'Content-type':'application/json' }    
    self.data = urllib.urlencode(self.data)
    req = urllib2.Request(api_url, self.data)
    response = urllib2.urlopen(req)

【讨论】:

  • 在 stats.py 的 shell OP 代码中测试(例如使用 api_url '127.0.0.1:8000/')它可以工作......,所以似乎问题不存在
  • 返回 HTTP 错误 400: BAD REQUEST
  • 发送到服务器的数据流错误或无效时会出现此错误,请立即尝试
  • 还要确保self.data 的值正确且不需要额外的标头
猜你喜欢
  • 1970-01-01
  • 2016-06-19
  • 2019-09-01
  • 2016-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-13
  • 2018-04-19
相关资源
最近更新 更多