【发布时间】:2019-09-20 10:36:54
【问题描述】:
我正在尝试解析指定要在字典中查找的值的用户输入。
例如,此用户输入可能是字符串fieldA[5]。然后我需要在我的字典(这将是一个列表)中查找键 fieldA,然后在位置 5 处获取元素。这应该可以推广到任何深度的列表,例如fieldA[5][2][1][8],并且对于无效输入 fieldA[5[ 或 fieldA[5][7 正确失败。
我已经调查过:
import re
key = "fieldA[5]"
re.split('\[|\]', key)
导致:
['fieldA', '5', '']
这用作输出(我可以用它在字典中查找),但实际上并不强制或检查括号的配对,并且它的读取方式以及如何使用此输出在字典中查找不直观.
是否有可用的解析器库或替代方法?
【问题讨论】:
-
您可能需要编写自己的解析器。这是一个不错的库:infohost.nmt.edu/tcc/help/pubs/pyparsing/web/index.html
标签: python