Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python DJANGO升级错误:不可序列化JSON_Python_Json_Django_Serialization - Fatal编程技术网

Python DJANGO升级错误:不可序列化JSON

Python DJANGO升级错误:不可序列化JSON,python,json,django,serialization,Python,Json,Django,Serialization,这是我在django 1.6中的代码,运行良好 我升级到django 1.7。 第一个simplejson被删除:我将simplejson更改为json,但总是收到相同的错误 不可序列化json 有什么想法吗 观点: 错误 您的异常处理程序正在引发异常。您正在尝试将整个异常对象序列化为json以返回给用户。而是获取异常的字符串表示形式并返回: def receiver(request): try: ... except: response = "%

这是我在django 1.6中的代码,运行良好 我升级到django 1.7。 第一个simplejson被删除:我将simplejson更改为json,但总是收到相同的错误 不可序列化json

有什么想法吗

观点:

错误


您的异常处理程序正在引发异常。您正在尝试将整个异常对象序列化为json以返回给用户。而是获取异常的字符串表示形式并返回:

def receiver(request):
    try:
        ...
    except:
        response = "%s" % sys.exc_info()[0]
    return HttpResponse(simplejson.dumps(response)) 
直接返回内部异常消息不是一个好主意,您可能应该尝试专门捕获异常并返回一条用户友好的消息,而不是实际的异常

如果想了解代码中出现异常的原因,需要允许引发异常。去掉try..catch块,您将看到针对request_to_json函数引发的实际异常

从外观上看,问题在于您正在尝试序列化:


simplejson不喜欢的

我现在收到的全部信息是:except:response=Error它返回Error
TypeError at /views/receiver/
<class 'TypeError'> is not JSON serializable
Request Method: POST
Request URL:    http://localhost:8000/views/receiver/
Django Version: 1.7
Exception Type: TypeError
Exception Value:    
<class 'TypeError'> is not JSON serializable
Exception Location: C:\Python34\lib\json\encoder.py in default, line 173
Python Executable:  C:\Python34\python.EXE
Python Version: 3.4.1
Python Path:    
['C:\\workspace-eclipse\\IndoorPositioning',
'C:\\Python34\\lib\\site-packages\\setuptools-5.4.2-py3.4.egg',
'C:\\Windows\\system32\\python34.zip',
'C:\\Python34\\DLLs',
'C:\\Python34\\lib',
'C:\\Python34',
'C:\\Python34\\lib\\site-packages']
 Server time:   Sat, 13 Sep 2014 12:18:36 +0200
def receiver(request):
    try:
        ...
    except:
        response = "%s" % sys.exc_info()[0]
    return HttpResponse(simplejson.dumps(response)) 
 post_data = request.body