首页 文章

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

提问于
浏览
0

执行以下代码后:

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

我明白了:

回溯(最近一次调用最后一次):文件“”,第1行,文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/init.py”,第338行,在load中返回_default_decoder.decode文件“/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'转换为dict . 请注意,该字符串已经在'a'中,我不能在它前面添加'r' . 理想情况下,字符串应该是 {"excludeTypes":"*.exe;~\\\\$*.*"}

此外,以下代码不起作用:

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

2 回答

  • 2
    import ast
    
    d = ast.literal_eval(a)
    
  • 1

    通过转义转义字符“\”:

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

相关问题