如何在python中创建空的json对象

时间:2013-05-08 08:38:08

标签: python json

我有这段代码

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

但是我得到了这个错误

No JSON object could be decoded

我只是希望如果在POST中没有mydata那么我就不会收到该错误

2 个答案:

答案 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格式的,否则你会得到同样的错误。