0

Whis 脚本从一个来源读取,其中包含艺术家姓名和括号,其中包含有关艺术家是否取消以及他们来自哪个国家的信息。

一个正常的句子可能看起来像:

Odd Nordstoga (NO) (Cancelled), 20-08-2012, Blå

当我导入数据时,我将它们解码为 UTF-8,这工作正常。取消注释 remove_extra() 方法的 else 块中的第二条注释表明所有变量都是 Unicode 类型。

但是,当返回一个值并放入另一个变量并测试 this 的值时,大多数变量似乎是 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 回答