我有一个JSON
数据,我使用AJAX
发送到我的服务器。数据来到这里,我看到了。
def add_collection(self):
form = AccountForm.LoginForm(request.form)
if self.request.method == 'GET' :
return render_template('add_collection.html',user=current_user,formLogin = form)
elif self.request.method == 'POST' :
for data in self.request.data :
print "The data is %s" %data
当我打印self.request.data时,我得到了我的JSON
[{"image":"https://mybucket.s3.amazonaws.com/asma.jpg","Description":"Photo Descriptiong"},
{"image":"https://mybucket.s3.amazonaws.com/NCg3G.png","Description":"Photo Description"}]'
以上就是我的JSON
文件的样子和我期待的内容。但是,我想将它分成两行并插入数据库。请问我如何循环JSON
。我见过类似的问题here等等。但是,没有一个适合我。我试过的时候
for data in self.request.data :
print data['image']
TypeError:字符串索引必须是整数,而不是str
请问我该如何实现这一目标?任何帮助都将不胜感激。
以下是我的ajax请求。
$.ajax({
url: "/user/add_collection",
type: 'POST',
contentType:'application/json',
data: JSON.stringify(arr),
dataType:'json',
success : function(data,status){
console.log("The image upload data returns", data);
console.log("the image upload status is", status);
},
error : function(xhr, ajaxOptions, thrownError){
//$.mobile.loading('hide');
if (xhr.status == 200) {
alert(ajaxOptions);
}
else {
alert(xhr.status);
alert(thrownError);
}
}
});
我正在使用python运行flask框架。
答案 0 :(得分:3)
我认为您将响应作为字符串(self.request.data)。 要将其视为对象,首先需要将其转换为(从字符串到python表示):
elif self.request.method == 'POST' :
parsed_json = json.loads(self.request.data)
for data in parsed_json:
print data['image']
答案 1 :(得分:2)
JSON数据以字符串形式接收。你需要先解析它。
data = json.loads(self.request.data)