【问题标题】:Unreadable Notebook NotJSONError('Notebook does not appear to be JSON: u\'{\\n "cells": [\\n {\\n "cell_type": "...',)Unreadable Notebook NotJSONError('Notebook 似乎不是 JSON: u\'{\\n "cells": [\\n {\\n "cell_type": "...',)
【发布时间】:2015-08-19 19:12:11
【问题描述】:

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

【问题讨论】:

  • 对我来说,这个问题实际上是一条 python 注释。但就像@crypdick 建议的那样,使用在线 JSON 验证器会很快告诉你问题出在哪里。

标签: json ipython ipython-notebook


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    就我而言,我使用 GitHub 来保存我的 ipython 文件并与我的队友共享。当代码发生冲突时,我不得不删除那些表明冲突代码更改的行,例如:

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

    它对我有用。

    【讨论】:

    • 我想我有同样的问题,但我在 Atom 中看不到这条线。您使用哪个 IDE 来查看线路?
    • 发生了同样的事情,你能详细说明一下吗?
    • 只有在存在合并冲突并且您没有解决合并时才会发生这种情况。只需对 >>>>> 进行全局搜索,您就会发现冲突。您可以通过仅保留所需部分并删除其余部分(包括这些特殊关键字)来解决它们。希望事情会得到解决。
    • 正如@crypdick 的评论,使用在线 JSON 验证器查看冲突在哪里,然后在任何文本编辑器/IDE 中编辑它们。
    【解决方案3】:

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

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

    在我的 Mac OS 终端中

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

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

    【讨论】:

      【解决方案4】:

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

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

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

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

      【讨论】:

      • 你好,每个字典后面只有逗号吗?
      • 检查 json 结构中的错误的一种简单方法是在 vs code 中打开 jupyter notebook,然后单击“接受更改”以查看所有突出显示的错误。保存然后像往常一样再次打开nb
      • @Lucas 的评论避免使用另一个 cookie 网站:)。 Someone has also added an answer with this.
      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

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

        你需要寻找三样东西-

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

        之后就可以正常使用了。

        【讨论】:

          【解决方案7】:

          Visual Studio 代码过程

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

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

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

          【讨论】:

            【解决方案8】:

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

            【讨论】:

              【解决方案9】:

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

              【讨论】:

                【解决方案10】:

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

                【讨论】:

                  【解决方案11】:

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

                  【讨论】:

                    【解决方案12】:

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

                    【讨论】:

                      【解决方案13】:

                      我的母语不是英语,但是因为这个问题对我有帮助,所以我来反馈我的解决方案。 以下是用翻译软件翻译的: 从根本上说,由于关闭错误,文件格式混乱。打开时会先检查json格式的正确性,发现错误会返回错误。 我的文件格式中的混乱不是

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

                      【讨论】:

                        【解决方案14】:

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

                        在 git 在笔记本 JSON 中突出显示合并冲突后,VS Code 不会打开笔记本(例如

                        对我有用的替代方法是将文件重命名为 .json 以便它打开,然后搜索

                        【讨论】:

                          猜你喜欢
                          • 1970-01-01
                          • 1970-01-01
                          • 2018-10-21
                          • 2011-12-11
                          • 1970-01-01
                          • 2016-09-07
                          • 2012-07-03
                          • 2023-03-27
                          • 2015-10-14
                          相关资源
                          最近更新 更多