根据条件拆分 vals

Split vals depending on condition

我需要拆分 invoice.number 就像如果有白色-space Serial 是第一部分,Number 是第二部分。但是,如果没有 whitespace,那么 Serial 将保持空白,Number 将全部为 invoice.number。我该怎么做? 我需要在我的 for 循环中创建一些 IF 语句吗?

更新

例如 invoice.number 是 AA 555,所以序列号是 AA,编号是 555,但是如果 invoice.number 是 AA555,序列号是 "",编号是 AA555。但我们不知道 invoice.number 会是什么

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

因为 values 是一个字典,所以你可以非常简单地使用它,

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': ''}]