2015-03-09 5 views
0

После выполнения следующего кода:Как преобразовать эту строку json в dict?

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

я получаю:

Traceback (most recent call last): File "", line 1, in File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/init.py", line 338, in loads return _default_decoder.decode(s) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 365, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 381, in raw_decode obj, end = self.scan_once(s, idx) ValueError: Expecting property name: line 1 column 2 (char 1)

Так как я могу преобразовать 'а' в Сыроватском. Обратите внимание: строка уже находится в 'a', и я не могу добавить 'r' перед ней. В идеале, строка должна быть {"excludeTypes":"*.exe;~\\\\$*.*"}

Кроме того, следующий код не работает:

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

ответ

1

убегая экранирующего символа "\":

import json 
a = '{"excludeTypes":"*.exe;~\\$*.*"}' 
a = a.replace("\\","\\\\") 
json.loads(a) 
Смежные вопросы