2012-07-24 95 views
1

我有名单的下面的列表在Django:如何从Django的列表中删除unicode字符?

[['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使用此列表varibale。除了unicode字符,一切都很好。我想删除它。总之,我想上面的列表如下:

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

我应该怎么办?

+2

你在哪里建立这个列表?你可以编码为ASCII吗?然后它不会输出领先的u。另一个选择是通过'json.dumps()'运行它并将结果字符串传递给JS。这不应该打印你的。 – 2012-07-24 17:40:34

+0

DOne。请检查代码 – 2012-07-24 17:47:12

+0

'event_host,event_alerts =([] for x in range(2))'过于复杂。只要做'event_host = []''event_alerts = []'。 – 2012-07-24 17:50:11

回答

7

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

u'12.23.21.23'.encode('utf8') 
6
import json 
list_ = #your content list here 
list_as_json = json.dumps(list_) 

你实际上并没有消除任何。 u的显示是因为这些列表中的元素是unicode字符串,并且针对unicode字符串的__repr__()将显示前导u以区分它与非unicode字符串。 json.dumps()将unicode和non-unicode字符串的内容视为相同(至少对于此问题至关重要),因为它将列表转换为json字符串,因此您不会获得任何u标识符。

+0

你有没有检查lsit_变量。我把这个问题只是为了从中删除unicode的具体原因 – 2012-07-24 17:54:56

+1

事情是你没有真正去除任何东西。 – 2012-07-24 17:58:07

+0

但现在'type(list_as_json)'将是字符串 – jayeshkv 2016-02-29 22:00:59