首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >正在删除列表中的%u

正在删除列表中的%u
EN

Stack Overflow用户
提问于 2012-03-19 23:36:59
回答 6查看 181K关注 0票数 51

我已经阅读了删除列表中的字符'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}']
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-03-19 23:38:39

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

例如,您可以使用相同的synax创建一个新的Unicode字符串文字。例如:

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

这将创建一个新的Unicode字符串,其值是瑞典语中三明治的意思。您可以看到,非英语字符由它们的Unicode代码点öis \xf6和§is \xe5表示。'u‘前缀看起来就像你的例子一样,表示这个字符串包含Unicode文本。

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

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

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

票数 61
EN

Stack Overflow用户

发布于 2016-09-29 21:06:43

arr = [str(r) for r in arr]

这基本上将你所有的元素转换成字符串。因此删除了编码。因此,表示删除编码的u将轻松而有效地完成这项工作。

票数 23
EN

Stack Overflow用户

发布于 2012-03-19 23:42:29

U表示字符串为unicode。将所有字符串转换为ascii以摆脱它:

a.encode('ascii', 'ignore')
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9773121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档