Добавление внешней информации в ParseResults перед возвратом

Я хочу добавить внешнюю информацию в ParseResults перед возвращением. Я возвращаю результаты анализа как asXML (). Внешние данные представлены в виде словаря для анализа в формате XML при окончательном разборе.

Этот код перед добавлением внешних данных     от импорта и импорта *

# a hypothetical outer parser, with an unparsed SkipTo element
color = oneOf("red orange yellow green blue purple")
expression = SkipTo("XXX") + Literal("XXX").setResultsName('ex') + color.setResultsName('color')

data = "JUNK 100 200 10 XXX green"
print expression.parseString(data).dump()

# main grammar
def minorgrammar(toks):
    # a simple inner grammar
    integer = Word(nums)
    grammar2 = integer("A").setResultsName('A') + integer("B").setResultsName('B') + integer("C").setResultsName('C')

    # use scanString to find the inner grammar
    # (since we just want the first occurrence, we can use next
    # instead of a for loop with a break)
    t,s,e = next(grammar2.scanString(toks[0],maxMatches=1))



    # remove 0'th element from toks
    del toks[0]

    # return a new ParseResults, the sum of t and everything 
    # in toks after toks[0] was removed
    return t + toks

grammar1 = expression.setParseAction(minorgrammar)
x = grammar1.parseString(data).asXML("main")
print x 

выход

<main>
  <A>100</A>
  <B>200</B>
  <C>10</C>
  <ex>XXX</ex>
  <color>green</color>
</main>

код после добавления внешних данных

    ...
    external_data = {'name':'omar', 'age':'40'}

    return t + toks + ParseResults(external_data)

grammar1 = expression.setParseAction(minorgrammar)

x = grammar1.parseString(data).asXML("main")

print x
the output
<main>
  <A>100</A>
  <B>200</B>
  <C>10</C>
  <ex>XXX</ex>
  <color>green</color>
  <ITEM>{&apos;age&apos;: &apos;40&apos;, &apos;name&apos;: &apos;omar&apos;}</ITEM>
</main>

Я хочу вывод в виде

<main>
  <A>100</A>
  <B>200</B>
  <C>10</C>
  <ex>XXX</ex>
  <color>green</color>
  <name>omar</name>
  <age>40</age>
</main>

В чем ошибка в этом коде? Thans

Ответы на вопрос(2)

Ваш ответ на вопрос