IronPython 2.7およびElementTreeを使用します。xml - リスト内のサブリストの長さ - TypeError:未定義オブジェクトの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]
が、このエラーを得た:pythonのTypeError: len() of unsized object
。
編集:リスト内包で :count.append([LEN(X)のXにおけるlyst])
同じエラー:TypeError: len() of unsized object
。
どのようにサブリストのオブジェクトを数えることができますか?
あなたのリストの内包は、[LEN(x)のためのx lystに(この 'count.appendのようになります。 ]) '、あなたは後で別のエラーを受け取るかもしれません。 btw:lystにもリストの理解度を使うことをお勧めします。あなたは3本の線を救う! – Elmex80s