这些剧本从一个来源读取,其中的行由艺术家姓名组成,后面跟一个括号,其中包含有关艺术家是否取消以及他们来自哪个国家的信息。
正常句子可能如下:
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)
答案 0 :(得分:1)
尝试
return remove_extra(after)
而不仅仅是
remove_extra(after)