Yaml “a”是什么意思;JMES路径查询“;在Tavern中保存变量时的外观?

Yaml “a”是什么意思;JMES路径查询“;在Tavern中保存变量时的外观?,yaml,jmespath,tavern,Yaml,Jmespath,Tavern,在我的Tavern测试文件中,我保存了如下变量: [...] save: headers: csrf: x-csrf-token [...] 当我运行pytest时,它会记录以下警告: tavern/util/dict_util.py:119: FutureWarning: In a future version of Tavern, selecting for values to save in nested objects will have to be done as a J

在我的Tavern测试文件中,我保存了如下变量:

[...]
save:
  headers:
    csrf: x-csrf-token
[...]
当我运行pytest时,它会记录以下警告:

tavern/util/dict_util.py:119: FutureWarning: In a future version of Tavern, selecting for values to save in nested objects will have to be done as a JMES path query - see http://jmespath.org/ for more information
没有多大帮助,也没有。“x-csrf-token”字段未嵌套在“headers”中,因此我不理解该警告。我尝试过两种不同的JME,比如语法,但都会出现“找不到键”错误:

save:
  csrf: headers.x-csrf-token

save:
  headers:
    csrf: headers.x-csrf-token

Tavern在这里到底希望看到什么?

JMESPath非引号标识符不能包含连字符。你可以用一个字母代替。尝试:

save:
  headers:
    csrf: '"x-csrf-token"'
需要单引号来告诉YAML双引号是字符串的一部分。JMESPath中的双引号允许您在标识符中包含原本允许的字符,例如连字符