簡體   English   中英

Pyparsing Parseresults中的嵌套詞典

[英]Nested dictionaries in Pyparsing Parseresults

我正在使用以下類型的Pyparsing表達式。

pp.SkipTo(common_cfg)('value 2') + common_cfg + pp.SkipTo(pp.LineEnd())

common_cfg是一個為其結果分配“值1”的表達式。

當我將其解析為asDict()時,我將獲得嵌套的Dictionary。 為什么會發生這種情況,我該如何解決? 在“值2”的情況下,我只需要一個空字符串。

{'value 1': '52D4B6ED', 'value 2': ([''], {})}

您為“值2”看到的值不是嵌套字典。 您將獲得一個ParseResults對象,其中包含一個條目,一個空字符串。 由於ParseResults具有列表和字典的特征,因此其repr字符串會同時顯示兩者,首先顯示已解析的字符串或對象的列表,然后是類似dict的任何命名結果及其值的列表。 打印出type(result["value 2"])result["value 2"].dump()

您可以使用以下方法對SkipTo結果進行“取消分組”:

pp.ungroup(pp.SkipTo(common_cfg)('value 2'))

解析器中的第一個詞。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM