【问题标题】:python : Split string separated by a pipe symbol "|"python:用管道符号“|”分隔字符串
【发布时间】:2024-01-22 13:54:01
【问题描述】:

看看下面的字符串:

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

我想把它分开。管道符号“|”。因此,我使用以下 python 代码(其中 line 是包含上述字符串的字符串):

                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

但是,我不明白我在这里做错了什么。有什么建议吗?

【问题讨论】:

  • 你需要() 而不是[]
  • str.split 是一个函数。你用括号而不是方括号调用函数。
  • 哦,伙计....谢谢:)

标签: python split pipe


【解决方案1】:

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
    

    将为您处理拆分。

    【讨论】:

      最近更新 更多