【问题标题】:'ascii' codec can't encode character u'\u2013' in position 9: ordinal not in range(128)'ascii' 编解码器无法在位置 9 对字符 u'\u2013' 进行编码:序数不在范围内(128)
【发布时间】:2013-10-14 11:19:31
【问题描述】:

我正在尝试导入 cvs,但我收到此错误

UnicodeEncodeError at /brokers/csv/'ascii' codec can't encode character u'\u2013' in position 9: ordinal not in range(128)

Unicode 错误提示

无法编码/解码的字符串是:) 758–9800

我尝试了 .encode、unicode() 等,但没有任何效果,我不知道我是否需要库或其他东西,因为我在其他机器上有相同的代码并且工作正常。

 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

【问题讨论】:

标签: python django csv export


【解决方案1】:

你在使用 lib cStringIO 吗?在用 cStringIO 替换 StringIO 后,我遇到了类似的问题。回到 StringIO 是解决方案。

另外,您可以尝试使用

from __future__ import unicode_literals

作为代码的第一行。

【讨论】:

    【解决方案2】:

    我猜你使用的是 python 2.x?

    如果是这样,请尝试在写入时在您的字符串上使用 .encode('utf-8')。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-20
      • 2019-07-13
      • 1970-01-01
      • 2015-09-26
      • 1970-01-01
      • 2016-08-26
      • 2017-03-29
      • 2011-07-05
      相关资源
      最近更新 更多