【发布时间】:2017-04-13 21:47:07
【问题描述】:
以下代码在 Jupyter IPython notebook 中运行时运行良好:
from bs4 import BeautifulSoup
xml_file_path = "<Path to XML file>"
s = BeautifulSoup(open(xml_file_path), "xml")
但在从 Eclipse/PyDev(使用相同的 Python 解释器)运行时创建汤时失败:
Traceback (most recent call last):
File "~/parser/scratch.py", line 3, in <module>
s = BeautifulSoup(open(xml_file), "xml")
File "/anaconda/lib/python3.5/site-packages/bs4/__init__.py", line 175, in __init__
markup = markup.read()
File "/anaconda/lib/python3.5/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 1812: ordinal not in range(128)
- Python 版本:3.5.2 (Anaconda 4.1.1)
- BeautifulSoup:第 4 版
- IPython Notebook 版本:4.2.1
- Eclipse 版本:Mars.2 Release (4.5.2)
- PyDev 版本:5.1.2.20160623256
- Mac OS X:El Capitan 10.11.6
更新:
在 Eclipse 中导致问题的文件中的字符是 �,但这在 IPython Notebook 中不会导致问题!如果我从 XML 文件中删除这个字符,那么代码在 Eclipse 中也可以正常工作。我需要更改 Eclipse 中的某些设置,以使代码不会在此(以及可能的其他此类)字符上失败吗?
【问题讨论】:
-
@DYZ - 这里没有打印。它发生在我做汤的时候。
-
你试过
open(xml_file_path, "utf-8")吗? -
@dot.Py:失败了,但我尝试了
s = BeautifulSoup(open(xml_file_path), "xml", from_encoding="utf-8"),它也仅在 Eclipse 中失败
标签: python eclipse beautifulsoup pydev ipython-notebook