获取'pyparsing.ParseResults'的纯列表

时间:2012-05-10 12:29:31

标签: python pyparsing

我目前正试图将pyparsing的结果作为一个纯粹的列表,所以我可以将它弄平。我在文档中读到了

  

ParseResults也可以通过调用asList()转换为普通的字符串列表。请注意,这将删除已为任何嵌入式解析元素定义的任何字段名称的结果。 (pprint模块特别擅长打印asList()给出的嵌套内容。)

所以我尝试定义一个setParseAction,我在ParseResult上工作

我得到的是:

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

但我期待/需要最后一个是类型列表。在这里使用asList()时,我必须遗漏一些重要内容。

迪特马尔

PS:这里是令牌实际上是什么样的MTC:

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

2 个答案:

答案 0 :(得分:7)

tokens.args[0].asList是一个功能。 tokens.args[0].asList()是对该函数的调用(没有self参数之外的参数)。看来你想知道后一个表达的类型。

答案 1 :(得分:4)

你能试试吗

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