Es ist ein Problem beim Generieren einer .SVG Datei mit Python3 und ElementTree.ElementTree TypeError "write() Argument muss str sein, nicht Bytes" in Python3
from xml.etree import ElementTree as et
doc = et.Element('svg', width='480', height='360', version='1.1', xmlns='http://www.w3.org/2000/svg')
#Doing things with et and doc
f = open('sample.svg', 'w')
f.write('<?xml version=\"1.0\" standalone=\"no\"?>\n')
f.write('<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n')
f.write('\"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n')
f.write(et.tostring(doc))
f.close()
Die Funktion et.tostring (doc) erzeugt die Typeerror "write() Argument str werden muß, nicht bytes". Ich verstehe dieses Verhalten nicht, "et" sollte das ElementTree-Element in eine Zeichenfolge konvertieren? Es funktioniert in Python2, aber nicht in Python3. Was habe ich falsch gemacht?
Haben Sie die Dokumentation überprüft? Sehen Sie [diese Seite] (https://docs.python.org/3/library/xml.etree.elementtree.html) und suchen Sie nach "tostring". Hilft das? –
nicht wirklich, es sollte bereits in utf-8 bytestring decodiert werden, aber python3 scheint ein Problem damit zu haben –