Python:列表到JSON

Sil*_*ght 3 python django jquery-ui-autocomplete

我试图使用Django与jquery UI自动完成,但无法发送响应.

这是我的代码:

def ajax_tags_autocomplete(request):
    """ Autocomplete for tag list """
    beginning_of_title = request.GET.get('term', '')
    tags_found = Tag.objects.values_list('title', flat=True).filter(title__startswith=beginning_of_title)
    return HttpResponse(json.dumps(tags_found), mimetype='application/json')
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

[u"php"] is not JSON serializable
Run Code Online (Sandbox Code Playgroud)

为什么?列表序列化是不可能的?那么我应该传递给序列化器呢?

我会很高兴任何建议.

Thi*_*ter 9

你确定它实际上是一个包含unicode对象的列表而不是包含一些数据库对象的列表吗?该u"php"可能只是repr()对象.

试试json.dumps([unicode(t) for t in tags_found])json.dumps(map(unicode, tags_found))

  • `values_list()`仅在评估后返回列表.除非你评估它(`list(tags_found)`是最简单的方法),它将是queryset,它不是JSON可序列化的. (2认同)