class SearchSuggest(View):
def get(self, request):
key_words = request.GET.get('s','')
re_datas = []
if key_words:
s = JobType.search()
s = s.suggest('my_suggest', key_words, completion={
"field":"suggest", "fuzzy":{
"fuzziness":2
},
"size": 10
})
suggestions = s.execute_suggest()
for match in suggestions.my_suggest[0].options:
source = match._source
re_datas.append(str(source["job_name"]))
# return HttpResponse(json.dumps(re_datas), content_type="application/json")
return HttpResponse(json.dumps(re_datas), content_type="application/json")
# re_datas=list(re_datas)
但结果是:
那我怎么解决这个问题呢?谢谢!我希望不是列表类型! 我希望浏览器中的视图是str而不是list.I'我试图修复它。
答案 0 :(得分:0)
您可以尝试使用以下代码替换re_datas.append(source["job_name"])
re_datas.append(str(source["job_name"]))
从您的图片看起来,re_datas应该基本上是一个字符串列表。
问题很可能是source [“job_name”]正在返回一个json不了解如何序列化的对象。如果您只需要此对象的字符串表示形式,请尝试使用str(source [“job_name”])获取它。
如果它更复杂,您需要使您的类json可序列化 - 请查看How to make a class JSON serializable
答案 1 :(得分:0)
[ x for x in source["job_name"] ]
source['job_name']
(AttrList)可以迭代并存储在数组中。