不可读的笔记本 NotJSONError('Notebook does not appear to be JSON: u\'{\\n "cells": [\\n {\\n "cell_type": "...',)

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

当我试图加载我的 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

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

我的问题是 JSON 中的一些恶意尾随逗号,例如 "outputs" 中的逗号:

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

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

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

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

在我的MacOS终端

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

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

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

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

它对我有用。

我遇到这个问题是因为不小心从 github 中保存为 .txt 并通过删除 .txt 解决(下载时保留 .ipynb 而不是 .ipynb.txt)

免得您头疼。在任何在线 JSON 验证器中打开你的 .ipynb,它会告诉你哪些行有问题。我用了 this one.

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

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

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

Visual studio代码程序

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

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

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

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

你需要寻找三样东西 -

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

之后就可以正常工作了。

在使用 VS Code 和 Jupyter 扩展 git 合并后,我遇到了同样的问题。

git 在笔记本 JSON 中突出显示合并冲突后,VS Code 不会打开笔记本(例如 <<<<<)。一种解决方法是突出显示更改并使用 VSCode git 界面中的文件查看器逐一接受。

对我有用的替代方法是将文件重命名为 .json 以便它打开,然后搜索 <<<<< 的每个实例并接受传入的更改。

将我的代码推送到 Github 时发生冲突后出现此错误。回购中的代码是旧的,我的更改被隐藏了。 Notebook 未在 Jupyter 和 github 存储库中打开。按照上面的评论,我在我的代码中搜索了给出 JSON 错误的部分,即'<<<<<<<<<<<''=======''>>>>>>>>>>' 字符使用在线 json 解析器。然后我在 notepad++ 中打开我的 .ipynb 笔记本并手动将这些字符替换为空白字符串 ''。在此之后,笔记本在我本地的 Jupyter 上打开,我也将更改推送到 Github。

我已经通过 ipynb 文件编码从 UTF-8-BOM 更改为 UTF-8,然后就可以了。

我的母语不是英语,但是因为这个问题对我有帮助,所以我来反馈我的解决方案。 以下是用翻译软件翻译的: 从根本上说,文件格式因错误关闭而混乱。打开的时候会先检查json格式的正确性,发现不对就返回错误。 我的文件格式混乱不是 <<<<< 或 ====== 而是缺少逗号。 无论哪种方式,最好使用一款软件来检测 json 语法中的错误,然后自己手动修复。 最高赞提供的json网站检测可用,但检测错误不全,可能需要detected-modified-detected-modified。 同样用vscode打开文件,vscode会提示json语法错误的位置,同样不完整,需要多次检查修改。

提供的错误位置比较难找。我用的是nodepad++,右下角可以显示selected了多少个字符(标准,包括换行符)。然后 select 从第一个字符开始,直到目标位置。 虽然有点笨,但主要是没找到相关的定位方法