不可读的笔记本NotJSONError('笔记本似乎不是JSON:你\' {\\ n" cells":[\\ n {\\ n" cell_type&#34 ;:" ...',)

时间:2015-08-19 19:12:12

标签: json ipython ipython-notebook

当我尝试加载ipython笔记本时出现这个非常奇怪的错误。从来没有过,我不记得了,记得曾经和ipython做过任何愚蠢的事情:

Unreadable Notebook: /path/to/notebooks/results.ipynb NotJSONError('Notebook does not appear to be JSON: u\'{\\n "cells": [\\n  {\\n   "cell_type": "...',)

后面跟着

400 GET /api/contents/results.ipynb?type=notebook&_=1440010858974 (127.0.0.1) 36.17ms referer=http://localhost:8888/notebooks/results.ipynb

10 个答案:

答案 0 :(得分:5)

这也发生在我身上。我用记事本打开了我的data.ipynb文件,发现它是空白的。

我设法通过进入隐藏的ipynb_checkpoints文件夹并将data_checkpoint.ipynb复制到我的工作目录来恢复我的文件。

在我的Mac OS终端

cd .ipynb_checkpoints
cp data-checkpoint.ipynb \..

谢天谢地,代码被保留了下来。希望这有帮助!

答案 1 :(得分:2)

从IPython 0.13(ish)升级到Jupyter 4后,我遇到了同样的问题。

我的案例中的问题是JSON中有一些流氓尾随逗号,例如:“输出”后面的逗号:

...
 "language": "python",
 "metadata": {},
 "outputs": [],
},

删除逗号后,Jupyter / IPython可以再次读取笔记本(并将其升级到版本4)。我希望这会有所帮助。

答案 2 :(得分:2)

就我而言,我正在使用GitHub与我的队友一起保存和分享我的ipython文件。当代码中存在冲突时,我必须删除那些指示冲突代码中的更改的行,例如:

>>>>>>>>head
=============

它适用于我。

答案 3 :(得分:2)

恢复损坏的Jupyter笔记本文件(无论是否包含文本(大小= 0KB))的最简单方法是转到项目文件夹并显示隐藏的文件。显示隐藏文件后,您将看到一个名为'.ipynb_checkpoints'的文件夹。只需打开此文件夹并获取您想要的文件即可!

答案 4 :(得分:1)

让您省去头痛。在任何在线JSON验证器中打开.ipynb,它会告诉您哪些行有问题。我使用了this one

答案 5 :(得分:1)

这可以更改以将您的 ipynb 文件重新格式化为在 jupyter notebook 中可读。检查您的其他 ipynb 文件(在记事本中打开),这些文件在您的 jupyter 笔记本上运行良好,在记事本中的文件末尾进行检查和比较。您可以在那里重新格式化不起作用的文件。

答案 6 :(得分:1)

Visual Studio 代码程序

这是我通常避免在黑暗中摸索的程序。

  1. 我安装了一个像 one 这样的 json 解析器验证器。
  2. 打开文件并将副本另存为 .json 文件。
  3. 打开 json 并查找错误。
  4. 将其保存回 .ipynb 扩展名。

通常,我会设法快速修复错误。

答案 7 :(得分:1)

Jupyter 以特定方式自动保存。这意味着您在正确保存之前不小心关闭了笔记本。

你需要寻找三件事 -

  • 搜索 <<<<<<< 并删除这些行。
  • 搜索 ====== 并将这些行替换为 ,
  • 搜索 >>>>>>> 并删除这些行。

此后它会正常工作。

答案 8 :(得分:0)

我从github意外保存为.txt并通过删除.txt解决了这个问题(下载时留下.ipynb而不是.ipynb.txt)

答案 9 :(得分:0)

是的,对我来说最好的解决方案是我将笔记本保存为HTML格式,然后在Notepad ++中将其打开,删除重复的输出行,这导致笔记本增加到45MB,一旦清除,便保存了文件恢复为(.ipynb)格式,并且能够打开它而没有JSON错误。 希望对其他人也有用!