为什么打开Jupyter笔记本会出现“'输出'是意外的”错误?

时间:2019-05-07 02:26:11

标签: python jupyter-notebook

我正在尝试在此post上下载代码。

下载似乎成功,但是当我打开笔记本时,出现错误。

enter image description here

  

笔记本验证失败

     

无效的笔记本可能无法运行   正确地。验证错误为:

     

笔记本验证失败:不允许其他属性   (“ execution_count”,“输出”是意外的):

为什么打开Jupyter笔记本会出现“'输出'是意外的”错误?

有没有一种方法可以用来检查笔记本的哪一部分无效?

1 个答案:

答案 0 :(得分:2)

Jupyter笔记本实际上存储为JSON文件,因此您只需在文本编辑器中将其打开即可。每个单元格都是一个JSON对象,该对象被解码为Python dict

出现此错误的原因是cell_typemarkdown,表示这是Markdown单元格。

由于Markdown单元格是渲染的 而不是被执行,因此它们具有outputsexecution_count键(仅适用于代码单元格。

您可能会编写一个简单的脚本来检查Jupyter笔记本;像这样的东西:

import json

valid_keys = ['cell_type', 'metadata', 'source']
filename = ...  # specify filename here

with open(filename) as f:
    data = json.load(f)

for index, cell in enumerate(data['cells'], 1):
    if cell['cell_type'] == 'markdown':
        extra_keys = [key for key in cell.keys() if key not in valid_keys]
        if extra_keys:    
            print(f'Cell {index} has the following keys which are invalid for a markdown cell: {extra_keys}')