2017-02-01 2 views
1

У меня есть строка -заменить двойные кавычки с «"»в питона

l = '{"a": "1", "b": "2"}' 

Я хочу, чтобы преобразовать эту строку -

'{\"a\": \"1\", \"b\": \"2\"}' 

Для этого я пытаюсь заменить" с \ "

Вот что я попробовал -

l.replace('\"', '\"') 
'{"a": "1", "b": "2"}' 

l.replace('\"', '\\"') 
'{\\"a\\": \\"1\\", \\"b\\": \\"2\\"}' 

Как мне преобразовать {\"a\": \"1\", \"b\": \"2\"}?

+0

обычно первым аргументом замены строки является значение, которое вы хотите изменить, а второй является то, что вы хотите, чтобы изменить это. в этом случае вы хотите изменить 'l.replace ('"', '\ "')', чтобы получить желаемый результат – TravisF

+0

Он также возвращает '{"a": "1", "b": "2"}' –

+0

Возможный дубликат http://stackoverflow.com/questions/18886596/replace-all-quotes-in-a-string-with-escaped-quotes – Avi

ответ

5

Попробуйте это:

print l.replace('"','\\"') 

'\"' ничего особенного в Python не означает, так что вам не нужно, чтобы добавить \ перед тем ", если вы запустите

print l.replace('\"', '\\"'), вы получите один обратный слэш слишком.

На самом деле то, что вы видите, это представление строки, он добавил repr() method.Python представляет собой обратную косую черту в строках, как \\, потому что обратная косая черта является Escape Character.

Если вы напечатаете его, вы получите одиночный обратный слэш.

Дополнительную информацию вы можете получить у String and Bytes literals.

+0

Или 'print (l.replace ('"', '\\ "'))', если вы не используете старую/устаревшую версию Python. – semicolon

0

Вы можете попробовать это также

print l.replace('"',r'\"') 

или

print l.replace('"','\\"') 
Смежные вопросы