首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在json对象的字符串化列表上使用ply.lex

在json对象的字符串化列表上使用ply.lex
EN

Stack Overflow用户
提问于 2012-10-27 07:16:19
回答 1查看 245关注 0票数 1

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

但我留下了诸如“u‘’Grimsby‘”或“u’‘Amsterdam’”之类的标记,我正在努力摆脱前面的u,同时又不破坏实际上应该以"u“开头的单词标记。

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

代码语言:javascript
复制
 t_ignore 

或者是一个

代码语言:javascript
复制
def t_u(token):

可以安全地去掉这些“u”

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2012-10-27 18:40:53

如果存在非ascii字符,您并不总是能够安全地将unicode转换为字符串,例如,str(u'ü')将引发:

UnicodeEncodeError:'ascii‘编解码器无法对位置0中的字符u'\xfc’进行编码:

序数不在范围内(128)

但您可以按如下所示对其进行lex处理,并保留u

代码语言:javascript
复制
def t_unicode(token):
    r'u\'[^\']*\'|u\"[^"]*\"'

注意:当您使用print u'ü'时,它只显示ü (所以u不是问题)。

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

代码语言:javascript
复制
from __future__ import unicode_literals

def t_u(token):
    r'u'

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

代码语言:javascript
复制
def p_unicode_string(p):
    'expression : u string'
    p[0] = p[2]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13095636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档