Whis のスクリプトは、アーティスト名の後にかっこで構成された行と、アーティストがキャンセルしたかどうか、およびその出身国に関する情報を含むソースから読み取られます。
通常の文は次のようになります。
Odd Nordstoga (NO) (キャンセル), 20-08-2012, Blå
データをインポートすると、それらを UTF-8 にデコードすると、正常に動作します。remove_extra() メソッドの else ブロックの 2 番目のコメントのコメントを外すと、すべての変数が Unicode 型であることがわかります。
ただし、値が返されて別の変数に入れられ、この値がテストされると、変数の大部分は NoneType のように見えます。
なぜこれが起こるのですか?そして、それはどのように修正できますか?メソッドのリターンと新しい変数の代入の間にエラーが発生しているようです。
# -*- charset: utf-8 -*-
import re
f1 = open("oya_artister_2011.csv")
artister = []
navnliste = []
PATTERN = re.compile(r"(.*)(\(.*\))")
TEST_PAT = re.compile(r"\(.*\)")
def remove_extra(tekst):
if re.search(PATTERN, tekst) > 1:
after = re.findall(PATTERN, tekst)[0][0]
#print "tekst is: %s " % tekst
#print "and of type: %s" % type(tekst)
remove_extra(after)
else:
#print "will return: ", tekst
#print "of type: %s" % type(tekst)
return tekst
for line in f1:
navn, _rest = line.split(",",1)
navn = navn.decode("utf-8")
artister.append(navn)
for artist in artister:
ny_artist = remove_extra(artist)
#print "%s" % ny_artist
print "of type: %s" % type(ny_artist)