python - pyparsing 访问 ParseResults 时遇到问题

标签 python pyparsing

我有一个 ParseResults 对象,当我转储它时它看起来像这样:

[[['FM4', '230', '30', '680']]]   
[0]:   
     [['FM4', '230', '30', '680']]   
     [0]:   
       ['FM4', '230', '30', '680']   
       - FormNumber: 'FM4'   
       - BookNum: '680'   
       - PageNum: '230'   
       - BookmarkNum: '30'   

我似乎无法通过名称访问结果。

例如:results.FormNumber
或者,

for i in results:   
    print("i dict", dict(i))   

results in:   
        ('i dict', {})   

如果我打印:

print("i list", list(i))

我明白了:

('i list', [(['FM4', '230', '30', '680'], {'BookmarkNum': ['30'], 'BookNum': 
['680'], FormNumber: ['FM4'], 'PageNum': ['230']})])

如何通过名称访问字典对象? 提前致谢

最佳答案

进一步检查我的语法后,我意识到我正在使用一个组,这导致创建一个列表而不是字典。

删除组后,如下: ('我列出', [(['FM4', '230', '30', '680'], {'BookmarkNum': ['30'], 'BookNum': ['680'],表单编号:['FM4'],'页码':['230']})])

变成这样:('i list', [(['FM4', '230', '30', '680'], {'BookmarkNum': '30', 'BookNum': '680',表单编号:'FM4','页码':'230'})])

然后我就可以按名称使用字典了

谢谢

关于python - pyparsing 访问 ParseResults 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48394820/

相关文章:

python - 如何使用 lxml 和 python 更新 xml 文件?

python - pyparsing - 解析 xml 注释

python - 使用 Bottle.py 在每个页面的模板上下文中包含变量

python - 意外的 pyparsing 行为

Python/PyParsing : Difficulty with setResultsName

python - pretty-print PyParsing 树

python - 过滤 sqlalchemy 连接查询,基于解析的输入构建

python - __getattr__ 返回需要一个参数的 lambda 函数不起作用

python - 输入仅输入 2 的幂

javascript - AWS 上的 Python 获取远程 IP 地址