Python3 TypeError: can only concatenate list (not "str") to list
Python3 TypeError: can only concatenate list (not "str") to list
我正在移植 odoo 11,python 2.7 到 python 3. 我已经编辑了一个属于 odoo,python 代码的插件。
密码是:
vat = invoice.partner_id.vat or ''
vat = list(filter(lambda x: x.isnumeric(), vat[:2])) + vat[2:]
错误是:
TypeError: can only concatenate list (not "str") to list
我该如何解决这个问题,这段代码有什么问题?请帮助我。
list(filter(lambda x: x.isnumeric(), vat[:2]))
以上操作always returns list.
vat = invoice.partner_id.vat or ''
- 好像,这个操作returnsstr(因为
or ''
).
如果您希望 type(vat)==list
,您应该使用
vat = invoice.partner_id.vat or []
如果您希望 type(vat)==str
,您应该将筛选列表转换为 str
,例如
"".join(list(filter(lambda x: x.isnumeric(), vat[:2]))) + vat[2:]
使用线路
vat = invoice.partner_id.vat or ''
#convert string to list
vat = [x for x in val]
vat = list(filter(lambda x: x.isnumeric(), vat[:2])) + vat[2:]
首先将字符串转换为列表。
我正在移植 odoo 11,python 2.7 到 python 3. 我已经编辑了一个属于 odoo,python 代码的插件。
密码是:
vat = invoice.partner_id.vat or ''
vat = list(filter(lambda x: x.isnumeric(), vat[:2])) + vat[2:]
错误是:
TypeError: can only concatenate list (not "str") to list
我该如何解决这个问题,这段代码有什么问题?请帮助我。
list(filter(lambda x: x.isnumeric(), vat[:2]))
以上操作always returns list.
vat = invoice.partner_id.vat or ''
- 好像,这个操作returnsstr(因为
or ''
).
如果您希望 type(vat)==list
,您应该使用
vat = invoice.partner_id.vat or []
如果您希望 type(vat)==str
,您应该将筛选列表转换为 str
,例如
"".join(list(filter(lambda x: x.isnumeric(), vat[:2]))) + vat[2:]
使用线路
vat = invoice.partner_id.vat or ''
#convert string to list
vat = [x for x in val]
vat = list(filter(lambda x: x.isnumeric(), vat[:2])) + vat[2:]
首先将字符串转换为列表。