2014-01-05 143 views
4

看一看下面的字符串:python:由管道符號分隔的分割字符串「|」

E|1256280||2014-01-05 17:54:00|1|2014-01-05 18:59:53|True 

我想拆呢WRT。管道符號「|」。因此,我使用下面的Python代碼(其中線是包含以上所描述的字符串的字符串):

   print line 
       print str(type(line)) 
       print str(line[1]) 
       parts = line.split['|'] 
       print str(parts) 

但是,使用此片的代碼時,我得到以下錯誤:

E|1256280||2014-01-05 17:54:00|1|2014-01-05 18:59:53|True 
<type 'str'> 
| 
Traceback (most recent call last): 
    File "/path/to/my/pythonscritp.py", line 34, in crawl_live_quotes 
    parts = line.split['|'] 
TypeError: 'builtin_function_or_method' object is not subscriptable 

然而,我不明白我在這裏做錯了什麼。有什麼建議麼?

+0

您需要'()'而不是'[]' –

+1

'str.split'是一個函數。您可以使用圓括號調用函數,而不是使用方括號。 – Blender

+0

哦,男人....謝謝:) – toom

回答

9

parts = line.split['|'] 

應該是

parts = line.split('|') 

(即帶括號的而不是方括號。)

2

呼叫的方法,使用()周圍的參數:

parts = line.split('|') 

不是[],這是序列索引的語法。

我會用csv module,隨之|字符作爲分隔符配置讀者:

import csv 

with open(filename, 'rb') as infh: 
    reader = csv.reader(infh, delimiter='|') 
    for row in reader: 
     print row 

將處理拆分爲您服務。