在列表中删除你

发布于 2021-01-29 15:21:23

我已阅读过删除列表中的字符“ u”的信息,但我使用的是Google App Engine,它似乎不起作用!

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}']
关注者
0
被浏览
41
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

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

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

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

    这将创建一个新的Unicode字符串,其值是“三明治”的瑞典语单词。您可以看到非英语字符由其Unicode代码点表示,ö是\xf6和å是\xe5。就像在您的示例中一样,出现’u’前缀,表示该字符串包含Unicode文本。

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

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

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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看