2017-02-19 3 views
1

私はこのサイトwww.soundkartell.deをこするよ、と私はいくつかのUnicodeの問題に直面している:Pythonの2.7.35 - ユニコード問題

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. ユニコードの問題を解決するにはどうすればよいですか?

私はあなたがおそらく実際に問題を持っていないPython 2.7.x

+1

「de」はDeutschland(ドイツ)の国コードです。デンマークは 'dk'です。 –

答えて

0

を使用しています。あなたが見ていることの副作用であるどのようにPythonのプリントもの:

サンプルコード:

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テキストの文字列リテラルに便利です。

関連する問題