我有这段代码
json.loads(request.POST.get('mydata',dict()))
但是我得到了这个错误
No JSON object could be decoded
我只是希望如果在POST中没有mydata
那么我就不会收到该错误
答案 0 :(得分:20)
简单地:
json.loads(request.POST.get('mydata', '{}'))
或者:
data = json.loads(request.POST['mydata']) if 'mydata' in request.POST else {}
或者:
if 'mydata' in request.POST:
data = json.loads(request.POST['mydata'])
else:
data = {} # or data = None
答案 1 :(得分:1)
loads()
接受一个json格式的字符串,并将其转换为像dict或list这样的Python对象。在您的代码中,如果dict()
中不存在mydata
,则您将request.POST
作为默认值传递,而它应该是一个字符串,例如"{}"
。所以你可以写 -
json_data = json.loads(request.POST.get('mydata', "{}"))
还要记住,request.POST['mydata']
的值必须是JSON格式的,否则你会得到同样的错误。