django 接受post請求json.dumps()的時候會引發TypeError: 'expected string or buffer'錯誤
阿新 • • 發佈:2019-01-14
在客戶端中json.dumps() 一個{'a': 1,'b':2}的字典
,post請求傳送到django中。
在django的request.POST得到的是django.http.request.QueryDict物件,而不是json串,使用json.dumps()的時候會引發TypeError: 'expected string or buffer'錯誤。
print看到的程式碼如下:
因此,可以使用myDict = dict(queryDict.iterlists())轉換為字典形式,不用json.dumps()進行轉換
程式碼例子如下:
views.py
from django.shortcuts import render_to_response def 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'>