2013-03-02 60 views
2

我試圖通過Python 3.3,httplib2和beautifulsoup4來獲取股票價格數據。下面是代碼:字符編碼錯誤:UnicodeEncodeError:'charmap'編解碼器不能編碼字符X在位置Y:字符映射到<undefined>

def getData (symbol = 'GOOG', period = 'm'): 
    baseUrl = 'http://finance.yahoo.com/q/hp?s=' 
    url = baseUrl + symbol + '&g=' + period 
    h = httplib2.Http('.cache') 
    response, content = h.request(url) 
    soup = BeautifulSoup(content) 
    print(soup.prettify()) 

getData() 

我碰到下面的錯誤跟蹤:

File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/encodings/mac_roman.py", line 19, in encode 
return codecs.charmap_encode(input,self.errors,encoding_table)[0] 
UnicodeEncodeError: 'charmap' codec can't encode character '\xd7' in position 11875: character maps to <undefined> 

我是新來的python和庫和將不勝感激您的幫助!

回答

0

這是由於您的控制檯的編碼。

根據您使用的控制檯(Windows,Mac,Linux),控制檯嘗試顯示無法識別的字符,因此無法打印到屏幕。

您可以嘗試將輸出字符串轉換爲控制檯的編碼。

我發現一個簡單的方法是隻是將您的數據轉換爲字符串,它打印就好。

相關問題