我有一个很难将unicode转换为字符串

时间:2017-08-08 13:49:31

标签: python python-3.x

 if accion == "Informe merma":

 bor=sum(map(int,QuesosFrescos1kgdanados))
 bora=str(bor)
 if bor >= 1:
    informe2.write("La cantidad de Queso Fresco de 1kg dañado ha sido de: "+bora+" unidades")
    informe2.write("\n")
    informe2.write("El porcentaje de merma en relacion al stock actual("+(time.strftime("%d/%m/%Y %H:%M:%S'"))+("), es de: ")+str(porcentajequesofresco1kg)+("%"))
    informe2.write("\n")
    informe2.write("\n")

嗨,我正在尝试将我的“bor”变量转换为str,因为我必须将它写在文档上,但是我收到错误:

Traceback (most recent call last):
File "/Users/macbookpro-jonathanprieto/PycharmProjects/utec/programadiegotest.py", line 2130, in <module>
    informe2.write("La cantidad de Queso Fresco de 1kg dañado ha sido de: "+bora+" unidades")
UnicodeEncodeError: 'ascii' codec can't encode character '\xf1' in position 37: ordinal not in range(128)

我已经用这种方式做了很多次,但现在它不起作用了。

Pd:我正在使用python 3。

谢谢

1 个答案:

答案 0 :(得分:4)

不是变量bora触发了错误,而是ñ字符。

确保在打开文件时指定可以处理非ASCII字符的编码,例如:

with open("informe2.txt", "w", encoding="utf-8") as informe2:
    # do stuff

此外,您不必将bor转换为字符串:

informe2.write("La cantidad de Queso Fresco de 1kg dañado ha sido de: {} unidades".format(bor))