'ascii' codec ne peut pas encoder les caractères u'\u2013' à la position 9: ordinal pas in range(128)
Je suis en train d'importer le cvs, mais j'ai cette erreur
UnicodeEncodeError at /brokers/csv/'ascii' codec can't encode character u'\u2013' in position 9: ordinal not in range(128)
Unicode erreur soupçon
La chaîne qui n'a pas pu être codé/décodé était: ) 758-9800
J'ai essayé .encoder, unicode(), etc et rien ne fonctionne, je ne sais pas si j'ai besoin d'une bibliothèque ou quelque chose d'autre, car j'ai le même code dans une autre machine et fonctionne bien.
def exportar_a_csv_brokers(request):
#Fecha actual
hoy = datetime.now().date()
#Creado el:
creado_hoy = hoy.strftime("%m/%d/%Y")
response = HttpResponse(mimetype='text/csv')
response['Content-Disposition'] = 'attachment;filename=
"Reporte de Brokers ' + creado_hoy + '.csv"'
response['Content-Type'] = 'text/csv; charset=utf-8'
response.write("\xEF\xBB\xBF")
writer = csv.writer(response)
brokers = Broker.objects.all()
writer.writerow(['Creado el: ' + creado_hoy + ' '])
writer.writerow([''])
writer.writerow(
['Apellido Paterno', 'Nombre', '# Broker', '# Licencia de Seguro', 'ID Federal', 'Nombre Agencia', 'Teléfono',
'Correo Electrónico', 'Fax', 'Calle', '# Interior', 'Colonia', 'Código Postal', 'Estado', 'Ciudad'])
for broker in brokers:
#Imprimiendo resultados
writer.writerow([broker.ap_paterno, broker.nombre, broker.no_broker,
broker.no_licencia_seguro, broker.id_federal, broker.nombre_agencia, broker.telefono,
broker.correo_electronico, broker.fax,
broker.calle, broker.no_interior, broker.colonia, broker.codigo_postal, broker.estado,
broker.ciudad])
return response
Vérifier python-unicodecsv de la bibliothèque.
OriginalL'auteur GioBot | 2013-10-07
Vous devez vous connecter pour publier un commentaire.
Êtes-vous à l'aide de lib cStringIO? J'ai rencontré un problème similaire après le remplacement de StringIO avec cStringIO. Revenir à StringIO était la solution.
En outre, vous pouvez essayer d'utiliser
comme la première ligne de votre code.
OriginalL'auteur OBu
Je devine votre utilisation de python 2.x?
si donc essayez d'utiliser .encode('utf-8') sur votre chaîne lors de l'écriture.
OriginalL'auteur bcollins