django 接受post请求json.dumps()的时候会引发TypeError: 'expected string or buffer'错误

来源:互联网 发布:红楼梦解析知乎 编辑:程序博客网 时间:2024/05/18 00:10
在客户端中json.dumps() 一个{'a': 1,'b':2}的字典,post请求发送到django中。
在django的request.POST得到的是django.http.request.QueryDict对象,而不是json串,使用json.dumps()的时候会引发TypeError: 'expected string or buffer'错误。

因此,可以使用myDict = dict(queryDict.iterlists())转换为字典形式,不用json.dumps()进行转换

代码例子如下:

views.py

from django.shortcuts import render_to_responsedef recv_data(request):    recvdata = {}    if request.method == "POST" and request.POST:        recvdata = request.POST        print recvdata        print type(recvdata)        print '-----------------------------'        data = dict(recvdata.iterlists())        data = eval(data.keys()[0].encode())        print data        print type(data)    return render_to_response('recvdata.html',locals())

print看到的代码如下:

<QueryDict: {u'{"a": 1, "b": 2}': [u'']}><class 'django.http.request.QueryDict'>-----------------------------{'a': 1, 'b': 2}<type 'dict'>
0 0
原创粉丝点击