TypeError: iter() takes no keyword arguments
TypeError: iter() takes no keyword arguments
我正在与 xml.etree.cElementTree
合作,关于官方 documentation - 想要在 Element
:
中找到元素
$ python --version
Python 2.7.8
我的脚本:
#!/usr/bin/env python
import os, re
import xml.etree.ElementTree as ET
XML_FILE = '/cygdrive/****.csproj'
try:
tree = ET.ElementTree(file=XML_FILE)
root = tree.getroot()
print type(root)
for item in root.iter(tag='OutputPath'):
print item.tag, item.attrib, item.text
....
但是当我 运行 它时 - 出现错误:
$ ./xm_par.py
<type 'Element'>
Traceback (most recent call last):
File "./xm_par.py", line 21, in <module>
for item in root.iter(tag='OutputPath'):
TypeError: iter() takes no keyword arguments
我在这里想念什么?
这是一个已知错误; API 的 C 加速版本缺少对 tag
参数 作为关键字参数 的支持。见 issue #16849:
Element.{get,iter} doesn't handle keyword arguments when using _elementtree C accelerator.
此错误已在 Python 3.3 及更高版本中修复,但尚未在 Python 2.7 中修复。
您可以省略关键字并将参数作为位置参数传递:
for item in root.iter('OutputPath'):
演示:
>>> import xml.etree.cElementTree as ET
>>> tree = ET.fromstring('''\
... <root>
... <OutputPath></OutputPath>
... </root>
... ''')
>>> tree.iter(tag='OutputPath')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: iter() takes no keyword arguments
>>> tree.iter('OutputPath')
<generator object iter at 0x1045cc5a0>
我正在与 xml.etree.cElementTree
合作,关于官方 documentation - 想要在 Element
:
$ python --version
Python 2.7.8
我的脚本:
#!/usr/bin/env python
import os, re
import xml.etree.ElementTree as ET
XML_FILE = '/cygdrive/****.csproj'
try:
tree = ET.ElementTree(file=XML_FILE)
root = tree.getroot()
print type(root)
for item in root.iter(tag='OutputPath'):
print item.tag, item.attrib, item.text
....
但是当我 运行 它时 - 出现错误:
$ ./xm_par.py
<type 'Element'>
Traceback (most recent call last):
File "./xm_par.py", line 21, in <module>
for item in root.iter(tag='OutputPath'):
TypeError: iter() takes no keyword arguments
我在这里想念什么?
这是一个已知错误; API 的 C 加速版本缺少对 tag
参数 作为关键字参数 的支持。见 issue #16849:
Element.{get,iter} doesn't handle keyword arguments when using _elementtree C accelerator.
此错误已在 Python 3.3 及更高版本中修复,但尚未在 Python 2.7 中修复。
您可以省略关键字并将参数作为位置参数传递:
for item in root.iter('OutputPath'):
演示:
>>> import xml.etree.cElementTree as ET
>>> tree = ET.fromstring('''\
... <root>
... <OutputPath></OutputPath>
... </root>
... ''')
>>> tree.iter(tag='OutputPath')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: iter() takes no keyword arguments
>>> tree.iter('OutputPath')
<generator object iter at 0x1045cc5a0>