使用json.dump写入时,在iPython笔记本中正确包含回车符

时间:2015-10-10 13:12:22

标签: python json markdown ipython-notebook carriage-return

我正在尝试使用Python生成iPython笔记本作为json文件。我不确定如何在我指定为cell_type降价的单元格中将回车写入文件。我按照建议here尝试了双倍空格,我可以通过指定<br />来获得标记以创建新行,但如果我在标记中包含标题规范,它会将整个输入视为头。

例如:

import json

# Single markdown cell as a dictionary
cell = {
  "cell_type" : "markdown",
  "metadata" : {'collapsed': False, 'name': 'test'},
  "source" : ["## Header line",
    "<br />", 
    "Second line, not a header...hopefully"],
}

# Create ipython notebook dictionary
nbdict = { 'metadata': {}, \
    'nbformat': 4,
    'nbformat_minor': 0,
    'cells': [cell]
    }

with open('test.ipynb', 'w') as outfile:
    json.dump(nbdict, outfile)

然后,如果我用ipython notebook test.ipynb打开它,我有以下输出:

标题行第二行,不是标题...希望

但它都是粗体字,所以整个输入被视为一行标题。

如何正确指定回车符,以便在我创建这些笔记本时,只有一行符合标题?

1 个答案:

答案 0 :(得分:1)

Markdown使用换行符来分隔行,而不是HTML <br/>标记。在源代码行中添加换行符;使用双换行来分隔段落元素(包括标题):

cell = {
    "cell_type": "markdown",
    "metadata": {'collapsed': False, 'name': 'test'},
    "source": [
        "## Header line\n\n",
        "Second line, not a header...hopefully"
    ],
}