我需要将表示dict的python字符串转换为python dict。该字符串可能包含任何有效的dict表示,包括windows样式的路径(带反斜杠),例如
mystring = u'{"baselocaldir":"c:\\tmp\\SrcTmp\\RepManager"}'
我需要一个通用的str来dict convert函数,所以这只是一个源字符串的例子,它不起作用。源字符串可能来自外部源。最好是python2/3兼容的解决方案。在
我已经试过给出的答案:
在json.loads不起作用(即使我将字符串重新格式化为json语法):引发异常
在ast.literal_评估不起作用:在本例中,它在结果中放置一个制表符
评估:结果与ast.literal_评估在
我的(也许不是最优雅的)解决方案:
但它适用于python2、python3以及unicode字符串中的unicode字符:
我会对字符串进行修改,将“c:”替换为原始字符串文本r'c:'
结果:
^{pr2}$反斜杠很容易更改,不需要在后面加上双斜杠:
输出:
^{pr2}$Edit2:显然,仅使用repr()是不够的,这就是为什么我编辑了我的答案以使用regex并将所有
\
替换为\\
,代码如下:输出:
^{pr2}$以前的答案,这是不够的 编辑: 将字符串转换为原始字符串的简单方法是使用}
repr()
或{这是一个一步到位的解决方案,9年前的积分是:
输出:
相关问题 更多 >
编程相关推荐