2013-05-27 8 views
1

После одного дня, глядя через Интернет я задаю этот вопрос здесь:результатов Pyparsing как JSON

Есть ли способ, чтобы получить Pyparsing результатов, F.E.

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

в формате JSON ?

Обновление 11:46 27 мая 2013 года:
Ok. Поэтому я стараюсь сделать парсер для простого английского.
Результаты для предложения «Идите на 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

Ok. После очередной попытки идти по документации, которую я нашел очень хороший способ, чтобы вернуть эти данные в XML форме:

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

Если добавить this question with answers - это сделано. Так что это не так просто, но и не так сложно получить результаты в JSON форму. Я надеюсь, что кто-то в этом найдет это.

3

Вы должны были бы быть более явным, но общий подход будет в том, чтобы принять результат разбора и использовать json модуль (хотите ли вы это как гнездовой словарь/список, сжатая список/и т.д. ... до вас)

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

Это будет представлять все как списки и отбрасывать все '.setResultName''s – Equidamoid

Смежные вопросы