我正在尝试使用此代码将文本添加到XML文本字段。但我收到此错误TypeError: unsupported operand type(s) for +=: 'NoneType' and 'str'
def has_Transp_Const(Rid):
path = root.find('.//BUILDING/has_transp_const')
if path.items() is None:
path.text = '#{}' .format(str(Rid))
else:
path.text += ' #{}' .format(str(Rid))
我以XML开头:
<BE>
<BUILDING rid="#0">
<has_transp_const/>
</BUILDING>
</BE>
想要的输出:
<BE>
<BUILDING rid="#0">
<has_transp_const>#1 #2</has_transp_const>
</BUILDING>
</BE>
当我尝试使用此代码时,它工作正常:
OUT = ''
for i in range(10):
if i == 0:
OUT = '#{}' .format(str(i))
else:
OUT += ' #{}' .format(str(i))
print(OUT)
答案 0 :(得分:0)
这是因为示例中的path.items()
返回空列表,因此path.items() is None
== False
函数进入第二种条件,并且由于path.text为None,因此您会获得异常。
只需将path.items()
更改为path.text
def has_Transp_Const(Rid):
path = root.find('.//BUILDING/has_transp_const')
if path.text is None:
path.text = '#{}'.format(str(Rid))
else:
path.text += '#{}'.format(str(Rid))