Python - 可以将split()命令编入索引吗?

时间:2017-03-27 13:49:44

标签: python csv split

我正在尝试解析并拆分该行:

redfish - 12,000 lbs - trade for SNE stocks

我正在尝试的代码是:

elif ('-' in line) and ('lbs' in line):
    fish, remainder = line.split('-')               #splits line into two halves at the - (fish to one side)
    #print("line.split is:", line.split(':'))
    if '@' in remainder:
        weight, price = remainder.split('@')        #splits already split piece (remainder) into two halves at @
        if '-->' in price:
            price, junk = price.split('-->')
    if 'trade' in remainder:
        if 'to ' in remainder:
            weight, price = remainder.split('to ')
        elif ' or ' in remainder:
            weight, price = remainder.split(' or ') #add spaces around ' or ' so we don't match 'for'
    if 'swap' in remainder:
        weight, price = remainder.split('to ')

它失败了:

fish, remainder = line.split('-')

错误:

ValueError: too many values to unpack (expected 2)

现在我知道这是因为该行中有2个'-'并且Python不知道要拆分哪一个,所以我试着告诉它拆分第一个{{1} } with:'-'但失败了。

所以我的问题是:有没有办法解决这个问题?我可以用另一种方式索引fish, remainder = line.split('-'[0])命令,以便我可以像我想的那样成功地拆分该行吗?

感谢您提供任何帮助或提示。

1 个答案:

答案 0 :(得分:2)

你很亲密,尝试使用:

line.split('-', 1)

它告诉它只在第一个' - '上分割字符串。遇到了。

但是,我不知道直接编制索引的可能性。如果要仅在第二个上拆分,请使用split命令。

在这种情况下,我建议拆分整个字符串,然后加入你想要的部分。