Я использую IronPython 2.7 и ElementTree.xml - длина подсписка в списке - ТипError: len() несезонного объекта
Код: Я получаю все счетные узлы ниже AX. Я добавляю каждый узел в lyst. После этого мне нужна длина каждого подсписок в lyst
.
Это всего лишь пример xml. Мой реальный xml намного больше и сложнее.
XML:
<?xml version="1.0" encoding="UTF-8"?>
<main>
<ex>
<top>
<AX>
<count>a</count>
<count>b</count>
<count>c</count>
</AX>
<AX>
<count>a</count>
</AX>
<AX>
<count>a</count>
<count>b</count>
<count>c</count>
<count>d</count>
</AX>
</top>
</ex>
</main>
код:
import clr
import sys
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
sys.path.append("C:\Program Files (x86)\IronPython 2.7\Lib")
import xml.etree.ElementTree as ET
uniStr = unicode(open(path, 'r').read())
fixed = uniStr.encode('ascii', 'replace')
fixed.decode('utf-8', 'replace')
tree = ET.ElementTree(ET.fromstring(fixed))
root = tree.getroot()
lyst=[]
count=[]
xpath=".//top//AX"
xpath2=".//count"
count_match = root.findall(xpath)
for elem in count_match:
subelem=elem.iterfind(xpath2)
lyst.append(subelem)
count.append(map(len,lyst))
#count.append([len(x) for x in lyst])
print count
Я ожидаю: count[3,1,4]
, но получил эту ошибку: питон TypeError: len() of unsized object
.
Edit: С списковых: count.append ([Len (х) при х в Lyst])
же ошибка: TypeError: len() of unsized object
.
Как я могу подсчитать объекты в подсписках?
Ваш список понимание должно выглядеть следующим образом 'count.append ([Len (х) при х в Lyst ]) ', все жесткие вы можете получить другую ошибку впоследствии. Кстати, я предлагаю вам использовать понимание списка для 'lyst'. Сохраняет 3 линии !!!! – Elmex80s