我有一个字符串化的 json 对象的 python 列表,我已经部分地对其进行了分析。
但是我留下了诸如“u'Grimsby'”或“u'Amsterdam'”之类的标记,并且我正在努力摆脱前面的u,而不会损坏实际上应该以“u”开头的单词标记。
所以我希望有人能帮我写一个
t_ignore
或一个
def t_u(token):
这将安全地摆脱这些“你”
谢谢你的帮助。
我有一个字符串化的 json 对象的 python 列表,我已经部分地对其进行了分析。
但是我留下了诸如“u'Grimsby'”或“u'Amsterdam'”之类的标记,并且我正在努力摆脱前面的u,而不会损坏实际上应该以“u”开头的单词标记。
所以我希望有人能帮我写一个
t_ignore
或一个
def t_u(token):
这将安全地摆脱这些“你”
谢谢你的帮助。
如果存在非 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]