python 在vscode中打开ipynb文件时,JSON中的位置0处出现意外标记#

ua4mk5z4  于 2023-04-28  发布在  Python
关注(0)|答案(8)|浏览(243)

我有一个ipynb文件(一个jupyter notebook),我用python扩展名在vscode中打开它。我收到标题中的错误
Unexpected token # in JSON at position 0
我一点也不明白,因为这个文件应该被解释为一个python文件。
我可以把分机号改到。py和它的vscode打开很好,但我没有装饰器来运行/调试像define here(https://code.visualstudio.com/docs/python/jupyter-support-py)这样的单元格。
我知道该文件是正确的,因为我已经在另一台计算机上的另一个vscode安装中使用过它,并且工作正常。
我不知道我的环境中可能配置错误。任何上衣都会很有帮助
下面是我的实际python代码,它在我的实际环境中产生了上述错误。
issue.ipynb

# %%
import world as w
import world_eg as weg
import world_case1 as wc1
import simulator_static as simulation
import numpy as np
from scipy.optimize import minimize
import matplotlib.pyplot as plt```

From the error, I understand that is parsing the file as a JSON file and the first line, which contains the #, fails.
vsnjm48y

vsnjm48y1#

我也遇到了类似的问题,当我用编辑器打开notebook时,我看到我有git放入文件中的合并标记。例如

<<<<<<< HEAD
...
=======
...
>>>>>>> ...

清理这些,允许jupyter解析文件并运行notebook。

a6b3iqyw

a6b3iqyw2#

当您向服务器发出请求并将响应解析为JSON时,就会发生这种情况,但它不是JSON。JSON应该以一个有效的JSON值开始--对象、数组、字符串、数字或false/true/null。根本原因是服务器返回了HTML或其他非JSON字符串。
我在我的项目中尝试过你的代码,没有任何错误。一切正常。检查Jupyter服务器网络,尝试重新启动vscode并重新创建一个新的juypter文件,看看问题是否消失。

[edit]

像上面的截图显示,类型# %%将添加一个新的单元格。当你打开一个。ipynb文件,如果python扩展识别出# %%,则会自动显示按钮run cell | debug cell,供您进一步测试。

你可以复制你的代码没有# %%到一个新创建的空白juypter文件,然后点击按钮export as并选择Python Script得到按钮Run Cell | Debug Cell.
或者重新安装python扩展并重试。

h7appiyu

h7appiyu3#

我有同样的问题,对我来说,这个问题是解决了简单地删除下划线(_)从文件名。我不知道为什么,但它的工作。

fhity93d

fhity93d4#

.ipynb文件实际上不是Python源代码文件-它们被编码为JSON文件。如果您创建一个新的notebook,然后重命名文件扩展名或在某些文本编辑器中打开它,您将看到底层JSON文件的结构。
当VS Code试图解释你的文件时,它试图将Python源代码解析为JSON对象,这显然会失败,并导致一个意想不到的令牌的其他神秘错误。
换句话说,仅仅通过更改文件扩展名不可能将Python脚本转换为笔记本。手动复制和粘贴代码将工作,或者你可以尝试谷歌搜索一些工具,例如.例如https://github.com/remykarem/python2jupyter

ix0qys7i

ix0qys7i5#

“无法打开'XXX。ipynb '““JSON中位置XXX处的意外标记〈”

对我来说,当我使用git并在vscode中重新打开ipynb文件时,我也遇到了类似的问题。
修复它,很容易!
(1)打开并编辑json格式的文件,并接受当前
变更或引入变更。
(2)保存并关闭已编辑的文件,然后重新打开文件。一切正常!
祝你好运!

de90aj5v

de90aj5v6#

我有一个类似的问题时,创建一个新的文件在VS代码,我保存为。ipynb.关闭文件后,我无法重新打开,我收到了与上面相同的错误信息。
对我来说,简单地关闭并重新启动VS Code就能做到这一点。之后,The。ipynb文件按预期打开。

0mkxixxg

0mkxixxg7#

notepad encoding format
使用另一种编码格式重新保存文档解决了我的问题。常规.ipynb文件(左图)使用Unix(LF)格式保存,但无法打开的文件使用UTF保存(右图)

8iwquhpp

8iwquhpp8#

如果您从Github下载,您可以:

  • 在Github中打开笔记本
  • 在编辑器上找到上方工具栏上的图标“〈〉”,其提示是:“显示源blob”。
    您将获得所需的JSON文件。复制它与其他图标在工具栏
  • 然后粘贴在您的编辑器(VSCode)并保存为ipynb笔记本文件。
    应该可以的

相关问题