在 Python 中使用 JMESPath 访问字典中的值

问题描述 投票:0回答:1

使用词典:

d = {'1': 'a'}

如何使用 Python 中的 JMESPath 库提取值

a

以下尝试均无效:

import jmespath

value = jmespath.search("1", d) 
# throws jmespath.exceptions.ParseError: invalid token
value = jmespath.search("'1'", d) 
# returns the key '1' instead of the value 'a'
python jmespath
1个回答
0
投票

如果标识符是

unquoted-string
,则可以直接寻址标识符,因此
A-Za-z0-9_
并且字符串以
A-Za-z_
开头。

根据上面列出的语法规则,标识符可以是一个或多个字符,并且必须以 A-Za-z_ 开头。
也可以引用标识符。当标识符包含

unquoted-string
语法规则中未指定的字符时,这是必要的。在这种情况下,标识符用双引号指定,后跟任意数量的
unescaped-char
escaped-char
字符,后跟双引号。

由于您的标识符是

0-9
,因此您必须使用双引号字符串作为该标识符,因此
"1"

所以,你的工作Python代码将是:

import jmespath

d = {'1': 'a'}

value = jmespath.search('"1"', d)

print(value)
© www.soinside.com 2019 - 2024. All rights reserved.