将结果作为JSON进行pyparsing

时间:2013-05-27 10:24:51

标签: python json python-2.7 pyparsing

在浏览互联网一天后,我在这里提出这个问题:

有没有办法获得 pyparsing 结果,例如

result = longSentence.parseString(text.lower())

采用 JSON 格式?

更新11:46 2013年5月27日:
好。所以我试着让解析器变得简单英语 句子的结果“Go 5米,你看到了什么?”现在打印成列表:

[[[['go'], [['5', 'metres']]]], 'and', ['what do you see?']]

['what do you see?']标有SetResultsName('Question')
其他人则相似。

如果以这种形式打印数据会很棒:

{
    "Sentence1":
    {
        "Order":
        {
            "Predicate": 'go',
            "Subject": ['5', 'metres']
        }
    },
    "Sentence2":
    {
        "Question": 'what do you see?'
    }
}

2 个答案:

答案 0 :(得分:3)

您必须更明确,但一般的方法是采用解析结果并使用json模块(无论您是希望将其作为嵌套字典/列表,扁平列表/等。 ..由你决定)

import json
json_string = json.dumps(result.asList())

答案 1 :(得分:2)

确定。在再次尝试浏览文档之后,我发现了一种以 XML 形式返回此数据的非常好的方法:

result = longSentence.parseString(text.lower()).asXML()

如果我添加this question with answers - 就完成了。所以它不是那么容易,但也不是很难以 JSON 形式获得结果。我希望有需要的人能够找到。