python - UnicodeEncodeError:'ascii' 编解码器在保存和访问 Jupyter 笔记本时无法编码字符 u'\xd7'
问题描述
我在 docker 容器和某些笔记本中运行带有 IPython 笔记本的 Django(Python 2.7)应用程序,在访问时,当我检查显示的日志时,我收到错误:加载此笔记本时发生未知错误
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/tornado/web.py", line 1415, in _execute
result = yield result
File "/usr/local/lib/python2.7/dist-packages/tornado/gen.py", line 870, in run
value = future.result()
File "/usr/local/lib/python2.7/dist-packages/tornado/concurrent.py", line 215, in result
raise_exc_info(self._exc_info)
File "/usr/local/lib/python2.7/dist-packages/tornado/gen.py", line 230, in wrapper
yielded = next(result)
File "/usr/local/lib/python2.7/dist-packages/notebook/services/contents/handlers.py", line 112, in get
path=path, type=type, format=format, content=content,
File "/usr/local/lib/python2.7/dist-packages/notebook/services/contents/filemanager.py", line 433, in get
model = self._notebook_model(path, content=content)
File "/usr/local/lib/python2.7/dist-packages/notebook/services/contents/filemanager.py", line 392, in _notebook_model
self.mark_trusted_cells(nb, path)
File "/usr/local/lib/python2.7/dist-packages/notebook/services/contents/manager.py", line 503, in mark_trusted_cells
trusted = self.notary.check_signature(nb)
File "/usr/local/lib/python2.7/dist-packages/nbformat/sign.py", line 438, in check_signature
signature = self.compute_signature(nb)
File "/usr/local/lib/python2.7/dist-packages/nbformat/sign.py", line 417, in compute_signature
for b in yield_everything(nb):
File "/usr/local/lib/python2.7/dist-packages/nbformat/sign.py", line 272, in yield_everything
for b in yield_everything(value):
File "/usr/local/lib/python2.7/dist-packages/nbformat/sign.py", line 276, in yield_everything
for b in yield_everything(element):
File "/usr/local/lib/python2.7/dist-packages/nbformat/sign.py", line 272, in yield_everything
for b in yield_everything(value):
File "/usr/local/lib/python2.7/dist-packages/nbformat/sign.py", line 276, in yield_everything
for b in yield_everything(element):
File "/usr/local/lib/python2.7/dist-packages/nbformat/sign.py", line 272, in yield_everything
for b in yield_everything(value):
File "/usr/local/lib/python2.7/dist-packages/nbformat/sign.py", line 272, in yield_everything
for b in yield_everything(value):
File "/usr/local/lib/python2.7/dist-packages/nbformat/sign.py", line 276, in yield_everything
for b in yield_everything(element):
File "/usr/local/lib/python2.7/dist-packages/nbformat/sign.py", line 281, in yield_everything
yield str(obj).encode('utf8')
UnicodeEncodeError: 'ascii' codec can't encode character u'\xd7' in position 14: ordinal not in range(128)
当我保存具有数据框行 X 列的形状的文件时,同样的问题发生在 X(u'\xd7') Unicode 的解析中。
尝试更改系统编码注意发生
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
解决方案
nbformat==5.0.x 需要 python 3.5+
从 5.0 开始,nbformat 现在仅支持 Python 3 (>= 3.5)
https://nbformat.readthedocs.io/en/latest/changelog.html#id2
推荐阅读
- embed - 张量的扩展大小 (300) 必须与非单维 0 处的现有大小 (77) 匹配。目标大小:[300]。张量大小:[77]
- android - 以特定格式传递查询日期参数
- javascript - 如何在“更改”中检索选定的文本
- c# - 我需要哪个运行时和 Web 托管捆绑包来托管我的 AspNetCore 2.0.3 应用程序?
- r - 如何从编码的折线创建空间线数据框?
- c++ - 将其他标头包含在包含类定义的标头中
- c# - 错误,当我使用 Selenium C# 初始化 IE 浏览器时
- ios - 在从 Firebase DB 获取结果的 UITableView 上实现搜索
- python - 比较两个 XML 元素而不编组它们
- excel - 从 Excel 中的列表创建多个 Outlook 任务