例如,我通过js发送这个json字符串
{data: "[{"id":1},{"id":2}]"}
在服务器端我尝试从它创建一个字典:
result = json.loads(str(request.body, 'utf-8'))
print(result) # {'data': '[{"id":1},{"id":2}]'}
print(type(result['data'])) # <class 'str'> (not list!!!)
print(str(request.body, 'utf-8')) # {"data":"[{\"id\":1},{\"id\":2}]"}
那么,为什么json.loads不会创建列表呢?我使用python 3
答案 0 :(得分:3)
因为您在数据中有引号
{'data': "[I'M STRING]"}
{'data': [im_list]}
答案 1 :(得分:0)
谢谢,反1869
最后,我知道为什么它不起作用。我有一张表格
<form action="" method="post">
<input id="datafield" type="hidden" name="data" value="[{"id":1},{"id":2}]"/>
<button type="submit">Submit</button>
</form>
并像这样提交(错误,它引用括号的引号):
$.ajax({
method: 'post',
data: JSON.stringify( $('form').serializeArray() ), // sends with double quotes near brackets
contentType: 'application/json'
});
现在我根本不使用这个表格:
var j = [{"id":1},{"id":2}];
$.ajax({
type: 'post',
data: JSON.stringify(j), // sends normally
contentType: 'application/json'
});