Мой опыт аналогичен вашему, %%writefile
не интерпретирует переменные.
Если вам нужен удобный лайнер для печати переменной в файл, вы можете использовать print
:
somejson = """{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}"""
print(somejson, file=open('output.json', 'a'))