我有一个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.
8条答案
按热度按时间vsnjm48y1#
我也遇到了类似的问题,当我用编辑器打开notebook时,我看到我有git放入文件中的合并标记。例如
清理这些,允许jupyter解析文件并运行notebook。
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扩展并重试。
h7appiyu3#
我有同样的问题,对我来说,这个问题是解决了简单地删除下划线(_)从文件名。我不知道为什么,但它的工作。
fhity93d4#
.ipynb
文件实际上不是Python源代码文件-它们被编码为JSON文件。如果您创建一个新的notebook,然后重命名文件扩展名或在某些文本编辑器中打开它,您将看到底层JSON文件的结构。当VS Code试图解释你的文件时,它试图将Python源代码解析为JSON对象,这显然会失败,并导致一个意想不到的令牌的其他神秘错误。
换句话说,仅仅通过更改文件扩展名不可能将Python脚本转换为笔记本。手动复制和粘贴代码将工作,或者你可以尝试谷歌搜索一些工具,例如.例如https://github.com/remykarem/python2jupyter
ix0qys7i5#
“无法打开'XXX。ipynb '““JSON中位置XXX处的意外标记〈”
对我来说,当我使用git并在vscode中重新打开ipynb文件时,我也遇到了类似的问题。
修复它,很容易!
(1)打开并编辑json格式的文件,并接受当前
变更或引入变更。
(2)保存并关闭已编辑的文件,然后重新打开文件。一切正常!
祝你好运!
de90aj5v6#
我有一个类似的问题时,创建一个新的文件在VS代码,我保存为。ipynb.关闭文件后,我无法重新打开,我收到了与上面相同的错误信息。
对我来说,简单地关闭并重新启动VS Code就能做到这一点。之后,The。ipynb文件按预期打开。
0mkxixxg7#
notepad encoding format
使用另一种编码格式重新保存文档解决了我的问题。常规.ipynb文件(左图)使用Unix(LF)格式保存,但无法打开的文件使用UTF保存(右图)
8iwquhpp8#
如果您从Github下载,您可以:
您将获得所需的JSON文件。复制它与其他图标在工具栏
应该可以的