How to escape string for generated C++?

code-generation, escaping, python

Solution

The way I use is based on the observation that C++ strings basically obey the same rules regarding charactes and escaping as Javascript/JSON string.

Python since version 2.6 has a built-in JSON library which can serialize Python data into JSON. Therefore, the code is, assuming we don't need enclosing quotes, just as follows:

import json
string_for_printing = json.dumps(original_string).strip('"')

Problem

I am writing python script which is generating C++ code based on the data. I have python variable `string` which contains a string which can be composed of characters like `"` or newlines. What is the best way to escape this string for code generation?

Original source