使用string方法解析子字符串

时间:2016-03-16 14:37:55

标签: python python-2.7

我尝试使用string.find方法来切出浮点数。

我可以使用以下内容确定:位于第18位:substr1a = substr1.find(':')

但我无法提取我需要的东西。

substr1 = 'X-DSPAM-Confidence: 0.8475'
substr1a = substr1.find(':')
substr1b = substr1.find[substr1a,30 ]
print substr1b

Traceback (most recent call last):
  line 8, in <module>
    substr1b = substr1.find[substr1a,30 ]
TypeError: 'builtin_function_or_method' object has no attribute '__getitem__'

1 个答案:

答案 0 :(得分:0)

  

TypeError:&#39; builtin_function_or_method&#39;对象没有属性&#39; getitem &#39;

此错误表示您尝试使用方括号将对象视为序列。这是方括号的作用:指向en元素或有序序列中的子序列(如字符串或列表)。

string.find是一个函数而不是有序序列,但字符串本身就是一个序列。

string = 'X-DSPAM-Confidence: 0.8475'

#the number starts after the space character, which is next to the colon.
# here we use round brackets
substr_start = string.find(' ')

# to actually get the substring from a string we have to slice it
# for slicing we use square brackets
# [n:] means from n to the end
substring = string[substr_start:]

# Here's another way. We split the string by ':' and take the second element
# .strip() removes extra space
substring2 = string.split(':')[1].strip()