根据条件拆分vals

时间:2017-06-06 05:49:45

标签: python openerp odoo-8 odoo-9

我需要拆分invoice.number,如果有空格,则Serial是第一部分,Number是第二部分。但是如果没有空格,那么Serial保持空白,Number将是所有invoice.number。我该怎么做? 我需要在for循环中创建一些IF语句?

更新

对于Exmaple invoice.number是AA 555,因此Serial为AA,编号为555,但如果invoice.number为AA555,则Serial为“”,Number为AA555。但我们不知道确切的invoice.number是什么

for line in invoice.invoice_line_ids:
     vals = {
            'Serial': invoice.number or '',
            'Number':invoice.number or '',
            }

1 个答案:

答案 0 :(得分:1)

这些值是一个字典,所以你可以使用它非常样本,

def parse(number):
    resultList = []
    resultDirt = dict()
    tempList = number.split(" ")
    if len(tempList) > 1:
        resultDirt['Serial'] = tempList[0]
        resultDirt['Number'] = tempList[1]
    else:
        resultDirt['Serial'] = ""
        resultDirt['Number'] = tempList[0]

    resultList.append(resultDirt)
    print(resultList)
    return resultList

parse("1321321 jkhhkhk")
parse("13215465465")

输出是,

[{'Number': 'jkhhkhk', 'Serial': '1321321'}]
[{'Number': '13215465465', 'Serial': ''}]