收到错误“列表索引必须是整数或切片,而不是str”

时间:2019-10-09 09:37:52

标签: python django

我是Django的新手。在下面的数据中,我需要从字典的选项列表中获取text(key)的值并将其返回到列表中。当我试图让值编译器抛出错误时说``列表索引必须是整数或切片,而不是str''。我已经花了3个小时以上的时间。预先感谢

这是我的数据

  { 
 'text':'man',
'offset':0,
'length':3,
'options':[ 
   { 
     'text':'manglore',
     '_index':'locations',
     '_type':'_doc',
     '_id':'5',
     '_score':2.0,
     '_source':{ 

     }
  },
  { 
     'text':'manipal',
     '_index':'locations',
     '_type':'_doc',
     '_id':'6',
     '_score':2.0,
     '_source':{ 

     }
  }
 ]
}

这是我的代码

def search(request):
 message = request.POST['x']
 res = es.search(index = "locations", body = {
 "_source": "suggest",
 "suggest": {
  "places": {
  "prefix": message,
  "completion": {
    "field": "name",
    "fuzzy": {
      "fuzziness": "AUTO",
      "transpositions": "true"
    }
   }
  }
 }
})
   city_list = []
   output = res['suggest']['places']
   for val in output['options']:
     print(val['text'])
   city_list.append(val['text'])
   return HttpResponse(output)

2 个答案:

答案 0 :(得分:0)

尝试一下:

for val in output:
    for city in val['options']:
        print(city['text'])
        city_list.append(city['text'])

这将提供输出

答案 1 :(得分:0)

city_list=[]
jos = res['suggest']['places'][0]['options']
for val in jos:
 city_list.append(val['text'])
return HttpResponse(city_list) 

这对我有用!