[Python-es] Código funciona en Py3 pero no en Py2.6
Mauricio Baeza
mauricio en correolibre.net
Mar Ago 24 19:05:50 CEST 2010
Hola a todos:
Estoy haciendo mis primeros programas en Python y tengo la siguiente
duda. Si hago:
$ python3 actualizarxml.py
El archivo se actualiza bien. Pero si hago:
$ python actualizarxml.py
Me muestra el siguiente mensaje de error y el archivo XML lo deja
trunco.
Traceback (most recent call last):
File "actualizarxml.py", line 13, in <module>
domDoc.writexml(xml_file)
File "/usr/lib/python2.6/site-packages/_xmlplus/dom/minidom.py", line
1746, in writexml
node.writexml(writer, indent, addindent, newl)
File "/usr/lib/python2.6/site-packages/_xmlplus/dom/minidom.py", line
816, in writexml
_write_data(writer, attrs[a_name].value)
File "/usr/lib/python2.6/site-packages/_xmlplus/dom/minidom.py", line
306, in _write_data
writer.write(data)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf3' in
position 41: ordinal not in range(128)
La ultima línea me hizo pensar en algún caracter extraño pero el archivo
es generado correctamente por la misma librería y donde se corta el XML
son caracteres válidos, aquí el código que estoy usando:
# This Python file uses the following encoding: utf-8
from xml.dom import minidom
archivo = open('sellob64.txt', 'r')
sello = archivo.read()
archivo.close()
domDoc = minidom.parse('Factura.xml')
nodo = domDoc.getElementsByTagName('Comprobante')
nodo[0].setAttribute('sello',sello)
archivo = open('Factura.xml', 'w')
domDoc.writexml(archivo)
archivo.close()
Puedo usar la versión 3, pero todo lo he venido haciendo en 2.6 y me
gustaría seguir haciéndolo. Uso ArchLinux x64 pero lo probé también en
un Ubuntu 10.04 con el mismo resultado.
¿Alguna idea para seguir investigando?
Saludos y gracias
--
Mauricio Baeza
10 años usando OpenOffice.org, libre, gratuito y seguro
_______________________________
Todo lo que no es dado es perdido
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20100824/d8ea84a2/attachment.html>
Más información sobre la lista de distribución Python-es