在列表中删除你
我已阅读过删除列表中的字符“ 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}']
-
“ 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编码的奇妙,瑞典语字符导致多个字节。