如何将这个json字符串转换为dict?

时间:2015-03-09 11:01:15

标签: python json python-2.7 escaping

执行以下代码后:

import json
a = '{"excludeTypes":"*.exe;~\\$*.*"}'
json.loads(a)

我明白了:

  

追踪(最近一次通话):     文件"",第1行,in     文件" /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/ init .py",第338行,在加载中       return _default_decoder.decode(s)     文件" /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py" ;,第365行,解码       obj,end = self.raw_decode(s,idx = _w(s,0).end())     文件" /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py",第381行,在raw_decode中       obj,end = self.scan_once(s,idx)   ValueError:期望属性名称:第1行第2列(char 1)

那么我该如何转换' a'直言不讳。 请注意,该字符串已经在' a'我不能添加' r'在它面前。理想情况下,字符串应为{"excludeTypes":"*.exe;~\\\\$*.*"}

此外,以下代码无效:

import json
a = '{"excludeTypes":"*.exe;~\\$*.*"}'
b = repr(a)
json.loads(b)

2 个答案:

答案 0 :(得分:2)

import ast

d = ast.literal_eval(a)

答案 1 :(得分:1)

逃离逃脱角色" \":

import json
a = '{"excludeTypes":"*.exe;~\\$*.*"}'
a = a.replace("\\","\\\\")
json.loads(a)