2016-01-06 47 views
0

我正在寫一個python腳本,用於批量替換HTML文件中的鏈接(實際上是圖像和腳本源);我正在使用lxml。有一個問題,在HTML文件測驗和他們有包裝類似這樣的數據(也存在一些西里爾這裏):在Python中的HTML解碼

<input class="question_data" value="{&quot;text&quot;:&quot;&lt;p&gt;[1] је наука која се бави чувањем, обрадом и преносом информација помоћу рачунара.&lt;/p&gt;&quot;,&quot;fields&quot;:[{&quot;id&quot;:&quot;1&quot;,&quot;type&quot;:&quot;fill&quot;,&quot;element&quot;:{&quot;sirina&quot;:&quot;103&quot;,&quot;maxDuzina&quot;:&quot;12&quot;,&quot;odgovor&quot;:[&quot;Информатика&quot;]}}]}" name="question:1:data" id="id3a1"/> 

當我嘗試在Python打印出該數據使用:

print "OLD_DATA:", data 

它只是打印出錯誤「UnicodeEncodeError:字符映射到未定義」。還有更多這些元素。我的目標是改變輸入值部分中圖像的鏈接,但如果我不知道如何打印這些數據(或如何將其寫入文件),我無法更改這些鏈接。 Python如何處理(解釋)這個?請幫忙。謝謝!!! :)

+0

你使用Python 2.7? –

+0

是的,Python 2.7.11是精確的。 – McLinux

回答

1

你遇到了我以前碰到過的很多次相同的問題。該錯誤幾乎總是意味着您正在使用的控制檯環境無法顯示正在嘗試打印的字符。可能值得嘗試登錄到文件,然後在可顯示字符的編輯器中打開日誌。

如果你真的希望能夠看到它在控制檯上,它可能是值得寫一個函數來篩選你打印的不可打印字符

我還發現了其他幾個StackOverflow的文章可能琴絃是有幫助的在你的努力:

How do I get Cyrillic in the output, Python?

What is right way to use cyrillic in python lxml library

我也建議這篇文章和Python手工錄入:

https://docs.python.org/2/howto/unicode.html

http://www.joelonsoftware.com/articles/Unicode.html

+0

非常感謝你LinFreak !!!這是偉大的建議! :) – McLinux

+1

我的榮幸! Unicode錯誤是我存在的禍根,因爲我做了很多批處理。我通常會包裝會導致它們在Try/Catch代碼中的語句,以記錄錯誤,以便我的程序不會在30因爲它無法記錄某些內容:P – Ketzak

+1

如果您確實需要將Unicode輸出到Windows的悲傷破解命令提示符處:https://pypi.python.org/pypi/win_unicode_console – bobince