我正在使用 jquery 发送包含这样的元素数组的 json 数据
$('#brand_category').click(function(event){
category = $("input:checkbox[name=category]:checked").map(function() {
return this.value;
}).get();
brand = $("input[type='radio']:checked").map(function() {
return this.value;
}).get();
parameter.push({
brand : brand,
category: category
});
var json = JSON.stringify(parameter)
$.ajax({
type: 'post',
url: "{% url 'seller_details' %}",
data: {'parameter[]' : json , csrfmiddlewaretoken:'{{csrf_token}}'},
success: function(data){
},
error:function (response, error){
}
});
在 View 中我正在收集这样的数据
brand_category = self.request.POST.get('parameter[]')
print brand_category
这将打印数据如下
[{"brand":["spykar"],"category":["Women Clothing","Dresses"]},{"brand":["Madame"],"category":["Women Clothing","Dresses"]}]
然后我尝试像这样循环 json
for list in list_data:
brand = list_data['brand']
print brand
categories = list_data['category']
print categories
但我收到这样的错误
list indices must be integers, not str
如何循环遍历 json 数据来获取品牌和类别列表?
最佳答案
你的外循环是一个列表,然后循环遍历列表中的每个字典。另外,您必须将字符串转换为 python 对象。
import json
brand_category = self.request.POST.get('parameter[]')
Lbrand_category = json.loads(brand_category)
for D in Lbrand_category:
brand,categories = D['brand'],D['category']
注意:如果您只需要品牌字符串而不需要列表,请使用:
brand,categories = D['brand'][0],D['category']
关于javascript - 如何在django中获取使用jquery发送的json数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35608357/