2011-11-16 119 views
0

我颳了一些信息,關閉網站和領域之一被存放在我的名單是這樣的:[u'Dover Park', u'30 \u2013 38 Dover Rise']寫入錯誤刮數據csv文件

\2013應該是一個

當試圖寫一個.csv文件,我得到以下錯誤:

UnicodeEncodeError:「ASCII」編解碼器不能在3位編碼字符U「\ u2013」​​:在範圍序數不( 128)。

這是我的代碼:

import re 
import mechanize 
from BeautifulSoup import BeautifulSoup 

url = 'http://www.dummy.com' 

br = mechanize.Browser() 

page = br.open(url) 

html = page.read() 
html = html.decode('utf-8') 
soup = BeautifulSoup(html) 

table = soup.find('table', width='800') 

property_list = [] 

for row in table.findAll('tr')[1:]: 
    for field in row.findAll('td', width='255'): 
     property_list.append(field.findAll(text=True)) 

for condo in property_list: 
    for field in condo: 
     if field == '  ': 
      condo.remove(field) 

for condo in property_list: 
    if len(condo) < 2: 
     condo.append(condo[0]) 
    if condo[1]: 
     condo[1] = condo[1].replace(',','') 

for condo in property_list: 
    for field in condo: 
     field = field.encode('utf-8') 

import csv 

myfile = open('condos.csv', 'wb') 
try: 
    wr = csv.writer(myfile) 
    wr.writerow(('Name','Address')) 
    for condo in property_list: 
     print condo 
     wr.writerow(condo) 
finally: 
    myfile.close() 
+2

這是url編碼數據時,您可以使用LIB進行解碼。對於您的編碼問題,請將您的字符串顯式編碼爲utf8。 –

+0

我試過各種組合,但我似乎仍然無法讓它工作。請參閱最新的問題。 – super9

回答

0

也許你可以試試:

#!/usr/bin/python 
# --*-- coding:UTF-8 --*-- 

import codecs 
streamWriter = codecs.lookup('utf-8')[-1] 
sys.stdout = streamWriter(sys.stdout) 

your_var.decode('utf-8')