您試圖將unicode值與字節字符串連接,然後將結果轉換爲unicode,將其寫入文件對象,最有可能只需要字節字符串。
不要混合像這樣的Unicode字節串。
打開寫有io.open()
自動編碼Unicode值的文件,然後處理只的Unicode代碼中的:
import io
with io.open(filename, 'w', encoding='utf8') as fileout:
# code gathering stuff from BeautifulSoup
fileout.write(u'{};{};{}{}\n'.format(key, nameDict[key], src, alt)
你可能要檢查出csv
module處理寫出分隔符分隔值。如果你走這條路,你必須明確你的編碼列:
import csv
with open(filename, 'wb') as fileout:
writer = csv.writer(fileout, delimiter=';')
# code gathering stuff from BeautifulSoup
row = [key, nameDict[key], src + alt]
writer.writerow([c.encode('utf8') for c in row])
如果某些數據來自其他文件,請確保您還解碼爲Unicode第一;再次,io.open()
讀取這些文件可能是最好的選擇,讓您在閱讀時將數據解碼爲Unicode值。
這是Python 2嗎?你爲什麼*從UTF-8解碼爲unicode?什麼是'fileout'?你的變量有什麼? –
它是python 2,變量是img標籤,用BeautifulSoup解析 – Allda
因此'key','nameDict [key]','src'和'alt'都是來自BeautifulSoup的所有**值?那些值是unicode。 –