Python中re.split的TypeError

时间:2014-06-26 12:29:11

标签: python list split typeerror

我有一个关于在re.split上使用re for Python的问题。 首先,记录列表包含100个数据。 当我试图检索特定数据时,它可以工作:

content = records[0].get("AB") #I'm getting the article content from pubmed btw
nom = []
nom = re.split(r"\B\s(?=[^\s:]+:)", content) #trying to split into paragraphs
print nom

但是,如果我尝试使用in in检索完整的数据集,我会收到期望字符串或缓冲区的typeerror。这是代码:

for record in records:
    content = record.get("AB")
    nom = []
    nom = re.split(r"\B\s(?=[^\s:]+:)", content)
    print nom

错误:

  

追踪(最近的呼叫最后):
  文件“”,第4行,在中   文件“/usr/lib64/python2.6/re.py”,第167行,分割为
  return _compile(pattern,0).split(string,maxsplit)
  TypeError:期望的字符串或缓冲区

任何人都可以向我解释为什么会这样?如何更正它以检索完整的数据集?

1 个答案:

答案 0 :(得分:2)

所以,你知道records[0]没问题。

显然,其他99行之一导致它窒息。我猜猜最后一个。一个快速而肮脏的解决方案是更改get以指定字符串默认值,而不是默认默认值(!)None

content = record.get("AB",'')