wheel read print parser example etree python-3.x lxml

python 3.x - read - builtins.TypeError: debe ser str, no bytes



python etree lxml (2)

Convierta el archivo binario a base64 y viceversa. Probar en Python 3.5.2

import base64 read_file = open(''/tmp/newgalax.png'', ''rb'') data = read_file.read() b64 = base64.b64encode(data) print (b64) # Save file decode_b64 = base64.b64decode(b64) out_file = open(''/tmp/out_newgalax.png'', ''wb'') out_file.write(decode_b64) # Test in python 3.5.2

He convertido mis scripts de Python 2.7 a 3.2, y tengo algunos errores.

# -*- coding: utf-8 -*- import time from datetime import date from lxml import etree from collections import OrderedDict # Create the root element page = etree.Element(''results'') # Make a new document tree doc = etree.ElementTree(page) # Add the subelements pageElement = etree.SubElement(page, ''Country'',Tim = ''Now'', name=''Germany'', AnotherParameter = ''Bye'', Code=''DE'', Storage=''Basic'') pageElement = etree.SubElement(page, ''City'', name=''Germany'', Code=''PZ'', Storage=''Basic'',AnotherParameter = ''Hello'') # For multiple multiple attributes, use as shown above # Save to XML file outFile = open(''output.xml'', ''w'') doc.write(outFile)

en la última línea recibí un error:

builtins.TypeError: must be str, not bytes File "C:/PythonExamples/XmlReportGeneratorExample.py", line 29, in <module> doc.write(outFile) File "c:/Python32/Lib/site-packages/lxml/etree.pyd", line 1853, in lxml.etree._ElementTree.write (src/lxml/lxml.etree.c:44355) File "c:/Python32/Lib/site-packages/lxml/etree.pyd", line 478, in lxml.etree._tofilelike (src/lxml/lxml.etree.c:90649) File "c:/Python32/Lib/site-packages/lxml/etree.pyd", line 282, in lxml.etree._ExceptionContext._raise_if_stored (src/lxml/lxml.etree.c:7972) File "c:/Python32/Lib/site-packages/lxml/etree.pyd", line 378, in lxml.etree._FilelikeWriter.write (src/lxml/lxml.etree.c:89527)

Instalé Python 3.2 y he instalado lxml-2.3.win32-py3.2.exe.

En 2.7 funciona.


El archivo de salida debe estar en modo binario.

outFile = open(''output.xml'', ''wb'')