2011-11-16 113 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')