[英]Django returns an array instead of a dictionary (rest-api-framework
我發送一個帶有數據的發布請求(使用requests.post('url', data=data)
):
data = {
'token':1234,
'data':{
'name':'test',
'etc':True,
}
}
在 django 中處理reguest.POST
時,我得到:
<QueryDict: {'token':[1234], 'data':['name', 'etc']} >
可能是什么原因?
可能是什么原因?
這就是QuerDict
的簡單表示方式。 這是因為在查詢字符串和 HTTP header 中,相同的鍵可以出現多次。 因此,它將鍵映射到值。
如果您下標項目 [Django-doc] ,例如request.POST['token']
它將始終返回最后一個元素,如果您使用.getlist(…)
[Django-doc] ,它將返回所有項目的列表:
request.POST['token'] # 1234
request.POST.getlist('token') # ['1234']
此外,正如您所發現的,您不能將字典作為值傳遞。 如果要發送它,則需要將其序列化,例如作為字符串:
import json
data = {
'token':1234,
'data': json.dumps({
'name':'test',
'etc':True,
})
}
然后在接收端,您可以反序列化這些:
import json
json.loads(request.POST['data'])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.