我有一个json对象的字符串化的python列表,我已经对其进行了部分词法分析。
但我留下了诸如“u‘’Grimsby‘”或“u’‘Amsterdam’”之类的标记,我正在努力摆脱前面的u,同时又不破坏实际上应该以"u“开头的单词标记。
所以我希望有人能帮我写一个
t_ignore 或者是一个
def t_u(token):可以安全地去掉这些“u”
谢谢你的帮助。
发布于 2012-10-27 18:40:53
如果存在非ascii字符,您并不总是能够安全地将unicode转换为字符串,例如,str(u'ü')将引发:
UnicodeEncodeError:'ascii‘编解码器无法对位置0中的字符u'\xfc’进行编码:
序数不在范围内(128)
但您可以按如下所示对其进行lex处理,并保留u
def t_unicode(token):
r'u\'[^\']*\'|u\"[^"]*\"'注意:当您使用print u'ü'时,它只显示ü (所以u不是问题)。
。
根据上下文,如果你真的想要,你可以忽略u (但是因为它仍然是unicode字符串,这看起来有点无意义)
from __future__ import unicode_literals
def t_u(token):
r'u'然后在你的ply中忽略u (假设已经定义了string ):
def p_unicode_string(p):
'expression : u string'
p[0] = p[2]https://stackoverflow.com/questions/13095636
复制相似问题