方法返回 Unicode 对象,分配给 NoneType.在 Python 中



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

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

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

当我导入数据时,我将它们解码为 UTF-8,这工作正常。取消注释 remove_extra() 方法的 else 块中的第二个注释表明所有变量都是 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)

尝试

return remove_extra(after)

而不仅仅是

remove_extra(after)

最新更新