如何将函数调用应用于别名?

佐特

我的目标是提供一种简单的方法来“过滤”先前定义的节点。考虑一下这个虚构的YAML文件:

%YAML 1.1
---
- fruit: &fruitref { type: banana, color: yellow }
- another_fruit: !rotten *fruitref

我需要在YAML文件或解析该文件的Python代码中定义什么,以便使用*fruitref(例如,先前定义的对象,在这种情况下为map)作为参数来调用自定义函数并获取返回值?目标非常简单,语法简洁,可以“过滤”先前定义的值(映射,序列等)。

笔记

在我看来,由于错误,构造!标记 *别名是无效的YAML:

expected <block end>, but found '<alias>'
  in "/tmp/test.yaml", line 4, column 21

这很可能暗示我将无法实现所需的语法,但我确实关心简洁性(或者,目标用户可以做到)。

采取的路线

YAML: !!python/object/apply:__main__.rotten [*fruitref]

它可以工作,但是对于预期的用途来说太冗长了;并且不需要多个参数,用例始终是别名(先前定义的映射/序列/对象)的过滤器。

YAML: %TAG !f! !!python/object/apply:__main__.

也许!f!rotten [*fruitref]可以接受,但是我找不到如何使用该%TAG指令。
编辑:我发现!!对于PyYAML 3.10不起作用,它必须是完整的URL,如下所示:%TAG !f! %TAG !f! tag:yaml.org,2002:python/object/apply:__main__.

Python: yaml.add_constructor

我已经使用add_constructor“广播”映射到类的特定实例。需要注意的是,标记别名似乎是无效的YAML。

到目前为止最好

add_constructor('!rotten', filter_rotten)在Python和!rotten [*fruitref]YAML中似乎可以正常工作,但是我想知道如何在可能的情况下省略方括号。

佐特

似乎不可能将标签应用于已加标签的引用,因此:

!tag *reference

是不能接受的。最好的解决方案是将引用括在方括号中(创建序列),并使标记成为函数调用或期望构造一个对象序列的特殊构造函数,因此可用的最差语法为:

!prefix!suffix [*reference]

或者

!tag [*reference]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将函数应用于控制器内的angularjs表达式?

来自分类Dev

如何将聚合函数应用于Google BigQuery中从JSON提取的数据?

来自分类Dev

如何将函数应用于增加数据帧中的数据子集

来自分类Dev

如何将多个函数应用于numpy数组?

来自分类Dev

如何将简单函数应用于数据帧中顺序标记的变量?

来自分类Dev

如何将jQuery函数应用于Ajax加载的内容

来自分类Dev

将动态参数应用于JavaScript函数,但延迟调用

来自分类Dev

R编程如何将列表中的单个元素应用于函数

来自分类Dev

如何将函数应用于每个“ foreach”结果?

来自分类Dev

如何将函数应用于数组中的所有元素(在C ++模板类中)

来自分类Dev

kdb数组映射-如何将函数应用于数组的每个元素?

来自分类Dev

如何将函数(BigramCollocationFinder)应用于Pandas DataFrame

来自分类Dev

如何将函数应用于data.frame的每个元素?

来自分类Dev

如何将公式转换为函数,或将公式应用于某些值?

来自分类Dev

如何将Lambda函数正确应用于熊猫数据框列

来自分类Dev

如何将函数应用于pandas数据框中的列中的每个值?

来自分类Dev

如何将函数应用于所有字段(所有行的所有列)

来自分类Dev

将模板参数应用于函数而不调用函数?

来自分类Dev

如何将具有泛型的函数类型应用于函数

来自分类Dev

调用熊猫将函数应用于蒙版的结果

来自分类Dev

如何将LinEst函数应用于行?

来自分类Dev

jQuery:如何将函数应用于哈希值?

来自分类Dev

如何将jquery应用于由ajax调用填充的标记

来自分类Dev

如何将数学函数应用于节点值?

来自分类Dev

熊猫:如何将函数应用于不同的列

来自分类Dev

如何将函数应用于数组的索引?

来自分类Dev

如何将异步调用应用于 JS 对象中的每个键?

来自分类Dev

Haskell 中的 $ 是什么,以及如何将函数应用于函数

来自分类Dev

如何将 NTILE 函数应用于 SQL 列

Related 相关文章

  1. 1

    如何将函数应用于控制器内的angularjs表达式?

  2. 2

    如何将聚合函数应用于Google BigQuery中从JSON提取的数据?

  3. 3

    如何将函数应用于增加数据帧中的数据子集

  4. 4

    如何将多个函数应用于numpy数组?

  5. 5

    如何将简单函数应用于数据帧中顺序标记的变量?

  6. 6

    如何将jQuery函数应用于Ajax加载的内容

  7. 7

    将动态参数应用于JavaScript函数,但延迟调用

  8. 8

    R编程如何将列表中的单个元素应用于函数

  9. 9

    如何将函数应用于每个“ foreach”结果?

  10. 10

    如何将函数应用于数组中的所有元素(在C ++模板类中)

  11. 11

    kdb数组映射-如何将函数应用于数组的每个元素?

  12. 12

    如何将函数(BigramCollocationFinder)应用于Pandas DataFrame

  13. 13

    如何将函数应用于data.frame的每个元素?

  14. 14

    如何将公式转换为函数,或将公式应用于某些值?

  15. 15

    如何将Lambda函数正确应用于熊猫数据框列

  16. 16

    如何将函数应用于pandas数据框中的列中的每个值?

  17. 17

    如何将函数应用于所有字段(所有行的所有列)

  18. 18

    将模板参数应用于函数而不调用函数?

  19. 19

    如何将具有泛型的函数类型应用于函数

  20. 20

    调用熊猫将函数应用于蒙版的结果

  21. 21

    如何将LinEst函数应用于行?

  22. 22

    jQuery:如何将函数应用于哈希值?

  23. 23

    如何将jquery应用于由ajax调用填充的标记

  24. 24

    如何将数学函数应用于节点值?

  25. 25

    熊猫:如何将函数应用于不同的列

  26. 26

    如何将函数应用于数组的索引?

  27. 27

    如何将异步调用应用于 JS 对象中的每个键?

  28. 28

    Haskell 中的 $ 是什么,以及如何将函数应用于函数

  29. 29

    如何将 NTILE 函数应用于 SQL 列

热门标签

归档