【发布时间】:2014-08-14 21:56:30
【问题描述】:
我正在为我的 web 应用程序使用 Django。我正在向我的视图发送 JSON 数据,但我无法通过调用 decoded_data['nodes'] 访问节点和边缘,它给了我:
'NoneType' object is not subscriptable
错误信息。
这是我将 json 发送到我的视图的方式:
var a={
nodes: thisGraph.nodes,
edges: saveEdges
};
//send data to server
$(document).ready(function(){
function change(){
$.ajax({
type:"POST",
url: "/",
data: {'data': JSON.stringify(a)},
dataType: "json",
success: function(){
console.log("Ajax worked");
$('#message').text("Ajax worked");
},
headers:{'X-CSRFToken': csrftoken}
});
这是我的看法:
data = request.POST.get("data")
json_encoded = json.dumps(data)
decoded_data = json.loads(json_encoded)
logger.error(decoded_data['nodes'])
decoded_data 如下所示:
{"nodes":[{"type":"node","title":"new concept","id":0,"x":658,"y":100},{"type":"
constraint","id":2,"title":"new Constraint","x":371,"y":95}],"edges":[{"source":
2,"target":0}]}
感谢您的帮助
【问题讨论】:
-
数据是什么样的?我尝试在这里使用
data={"nodes":[{"type":"node","title":"new concept","id":0,"x":658,"y":100},{"type":" constraint","id":2,"title":"new Constraint","x":371,"y":95}],"edges":[{"source": 2,"target":0}]}运行您的代码,并且没有错误 -
是的,当我执行此操作时它可以工作,但是当我从 POST.get("data") 获取它时它不起作用。 request.POST 看起来像这样:
-
真的在 ' 和 " 之间变化吗?你是怎么打印出来的?
print data? -
试试这个
myDict = dict(data.iterlists())看看会发生什么(好像你有一个QueryDict stackoverflow.com/questions/13349573/…) -
我想你的意思是
decoded_data = json.loads(json_encoded[0])我做到了,它说Expecting value: line 1 column 1 (char 0)
标签: javascript python json django