删除lis中的u

2024-04-28 22:21:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经阅读了关于删除列表中的字符“u”的内容,但我正在使用谷歌应用程序引擎,它似乎不起作用!

def get(self):
    players = db.GqlQuery("SELECT * FROM Player")
    print players
    playerInfo  = {}

    test = []

    for player in players:
        email =  player.email
        gem =  str(player.gem)
        a = "{email:"+email + ",gem:" +gem +"}"

        test.append(a)


    ast.literal_eval(json.dumps(test))
    print test

最终输出:

[u'{email:test@gmail.com,gem:0}', u'{email:test,gem:0}', u'{email:test,gem:0}', u'{email:test,gem:0}', u'{email:test,gem:0}', u'{email:test1,gem:0}']

Tags: test引擎self应用程序内容列表dbget
3条回答
arr = [str(r) for r in arr]

这基本上可以转换字符串中的所有元素。因此删除编码。因此,表示编码的u被删除 会轻松高效地完成工作

u表示字符串是unicode。将所有字符串转换为ascii以消除它:

a.encode('ascii', 'ignore')

u是字符串外部表示的一部分,这意味着它是Unicode字符串,而不是字节字符串。它不在字符串中,而是类型的一部分。

例如,可以使用相同的symax创建新的Unicode字符串文本。例如:

>>> sandwich = u"smörgås"
>>> sandwich
u'sm\xf6rg\xe5s'

这将创建一个新的Unicode字符串,其值为sandwich的瑞典语单词。您可以看到,非英语字符由它们的Unicode代码点表示,即是\xf6,而å是\xe5。“u”前缀与您的示例中显示的一样,表示此字符串包含Unicode文本。

为了消除这些问题,您需要将Unicode字符串编码成一些面向字节的表示形式,例如UTF-8。你可以这样做,例如:

>>> sandwich.encode("utf-8")
'sm\xc3\xb6rg\xc3\xa5s'

这里,我们得到一个没有前缀“u”的新字符串,因为这是一个字节字符串。它包含表示Unicode字符串字符的字节,由于UTF-8编码的奇妙之处,瑞典字符导致多个字节。

相关问题 更多 >