Le code suivant fonctionne très bien lorsqu'il est exécuté de portable Jupyter IPython:Code BeautifulSoup fonctionne dans IPython Notebook, mais pas Eclipse
from bs4 import BeautifulSoup
xml_file_path = "<Path to XML file>"
s = BeautifulSoup(open(xml_file_path), "xml")
Mais il échoue lors de la création de la soupe lorsqu'il est exécuté à partir d'Eclipse/PyDev (qui utilise le même Python interprète):
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: la version 4
- IPython version portable: 4.2.1
- version d'Eclipse: Mars.2 Release (4.5.2)
- version PyDev: 5.1.2.20160623256
- Mac OS X: El Capitan 10.11.6
MISE À JOUR: Le caractère dans le fichier qui pose problème dans Eclipse est �
, mais cela ne cause aucun problème dans IPython Notebook! Si je supprime ce caractère du fichier XML, le code fonctionne également correctement dans Eclipse. Y a-t-il un réglage dans Eclipse que j'ai besoin de changer pour que le code n'échoue pas sur ce caractère (et éventuellement un autre tel)?
Copie possible de [UnicodeDecodeError: le codec 'ascii' ne peut pas décoder l'octet 0xef en position 1] (http://stackoverflow.com/questions/10561923/unicodedecodeerror-ascii-codec-cant-decode-byte-0xef- en-position-1) – DyZ
@DYZ - Il n'y a pas d'impression ici. Cela arrive quand je crée la soupe. – arun
Avez-vous essayé 'open (xml_file_path," utf-8 ")'? –