我正在尝试针对某些数字测试xml文件中的属性。当我在属性上运行type()
时(在本例中为currentNote
):
import xml.etree.ElementTree as ET
tree = ET.parse('booze.xml')
root = tree.getroot()
for note in root.iter("note"):
currentNote = note.get("default-x")
print type(currentNote)
类型打印为<type = 'str'>
但是,如果我将最后一行更改为:
print type(int(currentNote))
我明白了:
TypeError: int() argument must be a string or a number, not 'NoneType'
不确定发生了什么 - 似乎我误解了etree解析器返回的内容......
答案 0 :(得分:0)
currentNote = note.get("default-x")
如果密钥不匹配, get
默认返回None
。
您无法从integer
。{/ p>创建NoneType
In [51]: int(None)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-51-3f3b1d3c7325> in <module>()
----> 1 int(None)
TypeError: int() argument must be a string or a number, not 'NoneType'
您应该在循环中打印note
以确认数据符合您的预期。