2017-02-19 61 views
1

我刮這個網站www.soundkartell.de,並且我面臨着一些問題的Unicode:的Python 2.7.x - unicode的問題

results =[] 
for article in soup.find_all('article'): 
    if article.select('a[href*="alternative"]'): 
     artist = article.h2.text      
     results.append(artist.encode('latin1').decode("utf-8")) 

print artist # Din vän Skuggan 
print results # [u'Din v\xe4n Skuggan'] 

我有-*- coding: utf-8 -*-在我的文件的頂部。

  1. 爲什麼python打印正確的數據而不是附加的數據?

  2. 我該如何解決unicode問題?

我使用Python 2.7.x

+1

另外,'de'是Deutschland(即德國)的國家代碼。丹麥是'dk'。 –

回答

0

你可能沒有真正遇到了問題。你們看到的是副作用如何蟒蛇打印件事情:

示例代碼:

artist = 'Din vän Skuggan' 
artists = [artist] 
print 'artist:', artist 
print 'artists:', artists 
print 'str:', str(artist) 
print 'repr:', repr(artist) 

產地:

artist: Din vän Skuggan 
artists: ['Din v\xc3\xa4n Skuggan'] 
str: Din vän Skuggan 
repr: 'Din v\xc3\xa4n Skuggan' 

所以從上面可以看出,當蟒蛇打印一個列表,它使用repr()作爲列表中的項目。在這兩種情況下,你都有相同的內容,python只是以不同的方式顯示它。

側面說明:

# -*- coding: utf-8 -*- 

在腳本的頂部,是字符串常量在代碼中的Unicode文本非常有用。