simplejson - 编码regexp \ d +

时间:2013-01-23 12:29:21

标签: python simplejson

我对编码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的值包含什么 - \\\

1 个答案:

答案 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', '+']