1

我在 Django 中有以下列表:

[['Host Name', 'No. of Events'], [u'12.23.21.23', 0], [u'2.152.0.2', 2]]

为了获得上面的列表,我在我的代码中编写了以下代码views

 def graph_analysis(request):
    event_host, event_alerts = ([] for x in range(2))
    event_alerts.append(['Host Name', 'No. of Events'])
    host_ipv4 = [et for et in get_hosts(user=request.user)]
    event = get_events(source_hosts=host_ipv4)
    for x in host_ipv4:
        event_host.append(x.ipv4)
        event_alerts.append([x.ipv4,get_host_count(x,event)])
    extra_context = {
    ####

现在我在我的 Javascript 变量中使用这个列表。一切都很好,除了 unicode 字符。我想删除它。简而言之,我希望上面的列表如下:

[['Host Name', 'No. of Events'], ['12.23.21.23', 0], ['2.152.0.2', 2]]

我应该怎么办?

4

2 回答 2

7

这里没有“unicode 字符”。您有一个包含要输出为 json 的 unicode 字符串的列表。您需要将 unicode 字符串(文本的抽象表示)编码为字节字符串(字节序列)。你这样做的方式是:

u'12.23.21.23'.encode('utf8')
于 2012-07-24T17:46:23.133 回答
6
import json
list_ = #your content list here
list_as_json = json.dumps(list_)

你实际上并没有删除任何东西。出现 u 是因为这些列表中的元素是 unicode 字符串,并且__repr__()for a unicode 字符串打印前导 u 以将其与非 unicode 字符串区分开来。 json.dumps()在将列表转换为 json 字符串时,将 unicode 和非 unicode 字符串的内容视为相同(至少就这个问题而言),因此您不会得到任何 u 标识符。

于 2012-07-24T17:53:03.733 回答