2016-08-10 1 views
1

ich speichern Sie die XML-Seite lokal von einem API von Merriam-Webster, lassen Sie mich Ihnen die URL: http://www.dictionaryapi.com/api/v1/references/collegiate/xml/apple?key=bf534d02-bf4e-49bc-b43f-37f68a0bf4fd'ascii' Codec kann nicht Byte 0xCB dekodieren während bs tun

, das ein Beispiel war. I urlretrieve es von der URL und speichern Sie es als XML-Datei.

Jetzt möchte ich es öffnen, aber eine UnicodeDecodeError auftritt.

ich getan habe:

page = open('test.xml') 
bs = BeautifulSoup(page) 

Dann wird der folgende Fehler tritt auf:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xcb 

Ich habe versucht, die URL zu machen u'test.xml' es hat nicht funktioniert.

sys.getdefaultencoding() 'UTF-8'

Die Codierung Konfiguration ist bereits UTF-8, der löst nicht das Problem, Dank für der Rat sowieso.

Antwort

1

Sie benötigen die Codierung als UTF-8 angeben, das ist, was die Daten als codiert ist, hat der Dateiname nichts mit dem zu tun, was im Innern so mit u prefixing einem Unicode-String zu machen, ist nicht helfen zu:

import io 
with io.open('test.xml', encoding="utf-8") as page: 
     bs = BeautifulSoup(page) 
+0

Danke! Ich habe versucht, Gurken-Modul zu verwenden, wenn ich das benutze, sagt es, dass ich inpuy –

+0

@AlexZhang ausgehen, wie haben Sie Essiggurke verwendet? –

+0

Warten Sie eine Minute, ich versuche, etwas ... Ich werde bald erklären –

Verwandte Themen