我已经阅读了删除列表中的字符'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}']
发布于 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编码的奇妙之处,瑞典语字符导致了多个字节。
发布于 2016-09-29 21:06:43
arr = [str(r) for r in arr]
这基本上将你所有的元素转换成字符串。因此删除了编码。因此,表示删除编码的u将轻松而有效地完成这项工作。
发布于 2012-03-19 23:42:29
U表示字符串为unicode。将所有字符串转换为ascii以摆脱它:
a.encode('ascii', 'ignore')
https://stackoverflow.com/questions/9773121
复制相似问题