1

我有一个字符串化的 json 对象的 python 列表,我已经部分地对其进行了分析。

但是我留下了诸如“u'Grimsby'”或“u'Amsterdam'”之类的标记,并且我正在努力摆脱前面的u,而不会损坏实际上应该以“u”开头的单词标记。

所以我希望有人能帮我写一个

 t_ignore 

或一个

def t_u(token):

这将安全地摆脱这些“你”

谢谢你的帮助。

4

1 回答 1

1

如果存在非 ascii 字符,您将无法始终安全地将 unicode 转换为字符串,例如str(u'ü')会引发:

UnicodeEncodeError:'ascii' 编解码器无法在位置 0 编码字符 u'\xfc':
序数不在范围内(128)

但是您可以按如下方式对其进行分类并保留u

def t_unicode(token):
    r'u\'[^\']*\'|u\"[^"]*\"'

注意:当你print u'ü'只显示时ü(所以你不是问题)。

.

根据上下文,如果你真的想要,你可以忽略u (但因为它仍然是一个 unicode 字符串,这似乎有点毫无意义)

from __future__ import unicode_literals

def t_u(token):
    r'u'

然后在你的层中忽略u(假设string已经定义):

def p_unicode_string(p):
    'expression : u string'
    p[0] = p[2]
于 2012-10-27T10:40:52.560 回答