2012-05-10 9 views
5

Ich versuche gerade, ein Ergebnis von pyparsing als eine reine Liste zu bekommen, damit ich es glätten kann. Ich lese in der Dokumentation, dassIch bekomme eine reine Liste von 'pyparsing.ParseResults'

ParseResults kann auch in eine gewöhnliche Liste von Zeichenfolgen durch den Aufruf von asList() konvertiert werden. Beachten Sie, dass dadurch die Ergebnisse aller Feldnamen, die für eingebettete Syntaxelemente definiert wurden, entfernt werden. (Das pprint Modul ist besonders gut auf den Druck der verschachtelten Inhalte von asList ausgegeben().)

Also versuchte ich eine setParseAction definieren, wo ich auf der parseResult arbeiten

, was ich bekommen ist:

>>> print type(tokens.args[0]) 
<class 'pyparsing.ParseResults'> 
>>> print type(tokens.args[0].asList) 
<type 'instancemethod'> 

Aber ich erwartete/brauche die letzte von Typ Liste. Ich muss etwas Wichtiges bei der Verwendung von asList() hier fehlen.

Dietmar

PS: Hier ein MTC von dem, was die Zeichen tatsächlich aussehen:

>>> print tokens.args[0] 
['foo1', ['xxx'], ',', 'graphics={', 'bar1', ['xxx,yyy'], ',', 'bar2', 
['xxx,yyy'], ',', 'bar3', ['xxx,yyy,', 'zzz=baz', ['xxx,yyy']], '}'] 

Antwort

7

tokens.args[0].asList ist eine Funktion. tokens.args[0].asList() ist ein Aufruf an diese Funktion (mit keinen Argumenten jenseits des self Arguments). Es scheint, dass Sie gerne den Typ dieses letzteren Ausdrucks kennen würden.

4

Können Sie versuchen

print type(tokens.args[0].asList()) 
Verwandte Themen