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)