我一直在尋找解決方案來解決一個我有但是沒有找到/理解的解決方案。基本上,如果我使用字符串函數(translate,strip等),我會得到Unicode錯誤(ascii'編解碼器不能在位置y編碼字符'x':序號不在範圍內(128)。但是當我嘗試美麗的湯處理文本,我不明白Unicode的錯誤,但難易程度(我應該說,不熟悉)是相當高的,我下面的代碼摘錄我:Python字符串處理,統一代碼和美麗的湯
...
import urllib2,sys
import re
import os
import urllib
import string
import time
from BeautifulSoup import BeautifulSoup,NavigableString, SoupStrainer
from string import maketrans
import codecs
trantab=string.maketrans(",",";")
...
html5 = urllib2.urlopen(address5).read()
time.sleep(1.5)
soup5 = BeautifulSoup(html5)
for company in iter(soup5.findAll(height="20px")):
stream = ""
count_detail = 1
for tag in iter(company.findAll('td')):
if count_detail > 1:
stream = stream + string.translate(str(tag.text),trantab)
if count_detail < 4 :
stream=stream+","
count_detail = count_detail + 1
print str(storenum)+","+branch_name_address+","+ stream
....
該腳本運行一段時間,然後在stream = stream + string.translate(str(tag.text),trantab)
基本上,我只是試圖在我正在處理的字段中用分號替換逗號。
此外,試圖刪除使用string.strip
嵌入的空白/空白,但我得到類似的錯誤。
如何使用美麗的湯做同樣的事情(只要用分號替換逗號並刪除空格)?
或者如果我只是堅持字符串函數,是否有代碼來解決這些麻煩的Unicode錯誤?