2017-08-08 50 views
1
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") 

你好,我想將我的「人權法案」變量爲str因爲我必須把它寫在文件但我得到一個錯誤:我有一個dificulties轉換的unicode字符串

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

謝謝

+0

你可以發佈完整的跟蹤,而不僅僅是例外嗎? –

+0

回溯(最近呼叫最後): 文件「/Users/macbookpro-jonathanprieto/PycharmProjects/utec/programadiegotest.py」,第2130行,在 informe2.write(「La cantidad de Queso Fosterco de 1kgdañadoha sido de :「+ bora +」unidades「) UnicodeEncodeError:'ascii'編解碼器無法在位置37編碼字符'\ xf1':序號不在範圍內(128) –

+0

該錯誤最可能來自'informe2.write )'行,這反過來引發了一個問題:你打開該文件的方式,以及打開它時指定了哪種編碼? –

回答

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)) 
+0

現在運行良好,謝謝! –