Der folgende Code funktioniert gut, wenn von Jupyter IPython Notebook laufen:BeautifulSoup Code funktioniert in IPython Notebook aber Eklipse nicht
from bs4 import BeautifulSoup
xml_file_path = "<Path to XML file>"
s = BeautifulSoup(open(xml_file_path), "xml")
Aber es schlägt fehl, wenn die Suppe zu schaffen, wenn sie von Eclipse/PyDev laufen (die die gleiche Python verwendet Dolmetscher):
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-Version: 3.5.2 (Anaconda 4.1.1)
- BeautifulSoup: Version 4
- IPython Notebook-Version: 4.2.1
- Eclipse-Version: Mars.2 Veröffentlichung (4.5.2)
- PyDev Version: 5.1.2.20160623256
- Mac OS X: El Capitan 10.11.6
UPDATE: Das Zeichen in der Datei, die in Eclipse Problem verursacht, ist �
, aber dies verursacht keine Probleme in IPython Notebook! Wenn ich dieses Zeichen aus der XML-Datei entferne, funktioniert der Code auch in Eclipse. Gibt es eine Einstellung in Eclipse, die ich ändern muss, damit der Code auf diesem (und möglicherweise anderen) Zeichen nicht fehlschlägt?
Mögliches Duplikat von [UnicodeDecodeError: 'ascii' Codec kann Byte 0xef in Position 1 nicht dekodieren] (http://StackOverflow.com/questions/10561923/unicodedecodeerror-ascii-codec-cant-decode-byte-0xef- in-position-1) – DyZ
@DYZ - Hier wird nicht gedruckt. Es passiert, wenn ich die Suppe erstelle. – arun
Haben Sie versucht 'open (xml_file_path," utf-8 ")'? –