'UnicodeEncodeError: 'ascii' codec' 尝试使用 python 将 £ 登录写入 Excel 工作表时出错



我正在python中抓取一个£值,当我尝试将其写入Excel工作表时,进程中断,出现以下错误

UnicodeEncodeError: 'ascii' 编解码器无法在位置 0 中编码字符 u'\xa3':序号不在范围内(128)

£ 符号正在打印,cmd 提示符中没有任何错误。有人可以建议如何将值(1,750 英镑)写到我的工作表中(带或不带英镑符号)。非常感谢...

import requests
from bs4 import BeautifulSoup as soup
import csv

outputfilename = 'Ed_Streets2.csv'
outputfile = open(outputfilename, 'wb')
writer = csv.writer(outputfile)
writer.writerow([Rateable Value])
url = 'https://www.saa.gov.uk/search/?SEARCHED=1&ST=&SEARCH_TERM=city+of+edinburgh%2C+EDINBURGH&ASSESSOR_ID=&SEARCH_TABLE=valuation_roll_cpsplit&PAGE=0&DISPLAY_COUNT=100&TYPE_FLAG=CP&ORDER_BY=PROPERTY_ADDRESS&H_ORDER_BY=SET+DESC&ORIGINAL_SEARCH_TERM=city+of+edinburgh&DRILL_SEARCH_TERM=BOSWALL+PARKWAY%2C+EDINBURGH&DD_TOWN=EDINBURGH&DD_STREET=BOSWALL+PARKWAY#results'
response = session.get(url)                 
html = soup(response.text, 'lxml')
prop_link = html.find_all("a", class_="pagelink button small")
for link in prop_link:
prop_url = base_url+(link["href"])
response = session.get(prop_url)
prop = soup(response.content,"lxml")
RightBlockData = prop.find_all("div", class_="columns small-7 cell")
Rateable_Value = RightBlockData[0].get_text().strip()
print (Rateable_Value)
writer.writerow([Rateable_Value])

您需要将unicode对象显式编码为字节。否则,您的系统将自动尝试使用ascii编解码器对其进行编码,这将失败,并显示非ASCII字符。所以,这个:

Rateable_Value = Rateable_Value.encode('utf8')

在你之前

writer.writerow([Rateable_Value])

应该做这个伎俩。

最新更新