我对编码regexp有一些误解:
>>> simplejson.dumps({'title':r'\d+'})
'{"title": "\\\\d+"}'
>>> simplejson.loads('{"title": "\\\\d+"}')
{u'title': u'\\d+'}
>>> print simplejson.loads('{"title": "\\\\d+"}')['title']
\d+
因此,在不使用print
的情况下,我看到\\
,使用print
我看到了\
。那么,加载dict的值包含什么 - \\
或\
?
答案 0 :(得分:1)
这是一个技巧:使用list
查看字符串中真正的字符:
In [3]: list(u'\\d+')
Out[3]: [u'\\', u'd', u'+']
list
将字符串分解为单个字符。所以u'\\'
是一个字符。 (u'\\'
中的双反斜杠是escape sequence。)它代表一个反斜杠字符。这是正确的,因为r'\d+'
也只有一个反斜杠:
In [4]: list(r'\d+')
Out[4]: ['\\', 'd', '+']