Search code examples
pythonstringreplace

Replace all quotes in a string with escaped quotes?


Given a string in python, such as:

s = 'This sentence has some "quotes" in it\n'

I want to create a new copy of that string with any quotes escaped (for further use in Javascript). So, for example, what I want is to produce this:

'This sentence has some \"quotes\" in it\n'

I tried using replace(), such as:

s.replace('"', '\"')

but that returns the same string. So then I tried this:

s.replace('"', '\\"')

but that returns double-escaped quotes, such as:

'This sentence has some \\"quotes\\" in it.\n'

How to replace " with \"?

UPDATE:

I need as output from this copyable text that shows both the quotes and the newlines as escaped. In other words, I want to be able to copy:

'This sentence has some \"quotes\" in it.\n'

If I use the raw string and print the result I get the correctly escaped quote, but the escaped newline doesn't print. If I don't use print then I get my newlines but double-escaped quotes. How can I create a string I can copy that shows both newline and quote escaped?


Solution

  • Hi usually when working with Javascript I use the json module provided by Python. It will escape the string as well as a bunch of other things as user2357112 has pointed out.

    import json
    string = 'This sentence has some "quotes" in it\n'
    json.dumps(string) #gives you '"This sentence has some \\"quotes\\" in it\\n"'