23

我有这个代码

json.loads(request.POST.get('mydata',dict()))

但我得到这个错误

No JSON object could be decoded

我只希望如果没有mydataPOST,那么我不会收到该错误。

4

2 回答 2

29

简单地:

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
于 2013-05-08T08:40:14.880 回答
1

loads()接受 json 格式的字符串并将其转换为 Python 对象,如 dict 或 list。在您的代码中,如果不存在,您将dict()作为默认值传递,而它应该是一个字符串,例如. 所以你可以写 -mydatarequest.POST"{}"

json_data = json.loads(request.POST.get('mydata', "{}"))

还要记住, 的值request.POST['mydata']必须是 JSON 格式,否则你会得到同样的错误。

于 2013-05-08T08:46:14.130 回答