为了账号安全,请及时绑定邮箱和手机立即绑定

在列表中删除你

在列表中删除你

米琪卡哇伊 2019-12-15 16:12:09
我已阅读过删除列表中的字符“ 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}']
查看完整描述

3 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

“ 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编码的奇妙,瑞典语字符导致多个字节。



查看完整回答
反对 回复 2019-12-16
?
POPMUISE

TA贡献1765条经验 获得超5个赞

[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字符。我们可以使用最终列表元素上的map函数轻松删除它


map(str, test)

另一种方法是将其追加到列表时


test.append(str(a))



查看完整回答
反对 回复 2019-12-16
  • 3 回答
  • 0 关注
  • 301 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信