0

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)
4

1 に答える 1

1

試す

return remove_extra(after)

ただの代わりに

remove_extra(after)
于 2012-10-09T19:12:44.570 に答える