<p>反斜杠很容易更改,不需要在后面加上双斜杠:</p>
<pre><code>mystring = u'{"baselocaldir":"c:\\tmp\\SrcTmp\\RepManager"}'
test = repr(mystring)[1:-1]
print(test)
# convert to dictionary
my_dict = json.loads(test)
print('dict key "baselocaldir" = ', my_dict["baselocaldir"])
</code></pre>
<p>输出:</p>
^{pr2}$
<p>Edit2:显然,仅使用repr()是不够的,这就是为什么我编辑了我的答案以使用regex并将所有<code>\</code>替换为<code>\\</code>,代码如下:</p>
<pre><code>import re, json
mystring = u'{"baselocaldir":"c:\tmp\SrcTmp\RepManager"}'
test = re.sub(r'(?<=[^\\])\\(?=[^\\])', r'\\\\', repr(mystring)[1:-1])
print(test)
# convert to dictionary
my_dict = json.loads(test)
print('dict key "baselocaldir" = ', my_dict["baselocaldir"])
</code></pre>
<p>输出:</p>
^{pr2}$
<p>以前的答案,这是不够的
编辑:
将字符串转换为原始字符串的简单方法是使用<code>repr()</code>或{<cd4>}</p>
<p>这是一个一步到位的解决方案,9年前的积分是:</p>
<pre><code>mystring = u'{"baselocaldir":"c:\tmp\SrcTmp\RepManager"}'
raw_str = "%r"%mystring
rep_str= repr(mystring)
print('original string = ', mystring)
print('Raw string = ', raw_str)
print('rep string = ', rep_str)
</code></pre>
<p>输出:</p>
<pre><code>original string = {"baselocaldir":"c: mp\SrcTmp\RepManager"}
Raw string = '{"baselocaldir":"c:\tmp\\SrcTmp\\RepManager"}'
rep string = '{"baselocaldir":"c:\tmp\\SrcTmp\\RepManager"}'
</code></pre>