【发布时间】:2020-01-16 15:31:34
【问题描述】:
我正在分析一个包含法语字符的数据框。
我在 jupyter notebook 中设置了一个基于 Python3 的 IPython 内核,所以默认编码应该是 utf-8。
但是,当我的 .ipynb 中出现重音字符(如 é、è...)时,我无法再保存我的笔记本,即使这些字符是在 utf-8 中处理的。 我在尝试保存时收到的错误消息是这样的:
保存文件时出现意外错误:Videos.ipynb 'ascii' codec can't encode characters in position 347-348: ordinal not in range(128)
这是一些在基本 Python3 内核中给出相同错误消息的最小代码
import pandas as pd
d = {'EN': ['Hey', 'Wassup'], 'FR': ['Hé', 'ça va']}
df = pd.DataFrame(data=d)
(实际上是一个带有“é”作为文本的简单单元格确实阻止我保存)
我见过类似的问题,但它们都是基于 Python 2.7,所以没有任何相关性。为了解决这个问题,我还尝试了几件事:
包括我笔记本顶部的
# coding: utf-8读取csv文件时指定utf-8编码
尝试使用 latin-1 编码读取文件然后保存(仍然没有 ascii编解码器支持)
-
还检查了我在 python3 中的默认编码,以确保
sys.getdefaultencoding() 'utf-8' 在 Notepad++ 中打开 .ipynb:编码设置为 utf-8。我可以添加重音字符并保存在那里,但随后无法再在 jupyter 中打开笔记本(我收到“未知错误”消息)。
问题来自于保存笔记本而不是读取文件,所以基本上我想切换到 utf-8 编码来保存我的 .ipynb 文件但不知道在哪里。
我怀疑问题可能来自我在 Windows10 上使用 WSL 的事实 - 不过只是直觉。
非常感谢您的帮助!
【问题讨论】:
标签: python-3.x encoding jupyter-notebook save windows-subsystem-for-linux