如何在 Python 的 yaml 文件中配置多个字典键?

诺莉11

我正在尝试使用 yaml 文件来存储字典键,以便我可以解析各种 json 有效负载。

我将以下 yaml 文件加载到名为“cfg”的变量中:

my_table: metadata

当我运行时:

for i in json['resources']:
    print(i[cfg['my_table']])

我可以从我的 json 的 ['metadata'] 键中看到所有值。

但是,我想查看['resources'] 下存在['metadata']['guid']键中的所有值因此,当我将 yaml 文件更改为:

my_table: metadata, guid

它不起作用。我也尝试过这些变化:

my_table: ['metadata', 'guid']  #tried ''.join("['{0}']".format(a) for a in cfg['my_table']) which gives me what I want, but when I shove this inside i[], I get a key error
my_table: ['metadata']['guid']  #yaml file doesn't parse properly

有任何想法吗?

FHTMitchell

那么您想将字典键存储在 yaml 文件中吗?

做就是了

# keys.yaml
my_table: [metadata, guid]

然后在你的python文件中

keys = yaml.safe_load('keys.yaml')['my_table']

for obj in json['resources']:  # don't call it json, that's a package name
    print(obj[keys[0]][keys[1]])

对于可变数量的键(不仅仅是两个),请这样做:

def recursive_getitem(obj, keys):
   if len(keys) == 0:
      return obj
   return recursive_getitem(obj[keys[0]], keys[1:])

然后做

for obj in json['resources']:  
    print(recursive_getitem(obj, keys))

要在评论中回答您的第二个问题,您需要使用嵌套列表

# keys.yaml
my_table:
    - [metadata, guid]
    - [entity, name]

.

# py file
keys = yaml.safe_load('keys.yaml')['my_table']

for obj in json['resources']:  # don't call it json, that's a package name
    print(obj[keys[0][0]][keys[0][1]])
    print(obj[keys[1][0]][keys[1][1]])

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Python中向YAML文件添加注释

来自分类Dev

我如何在 python 中编辑 yaml 文件

来自分类Dev

如何在python中使用ruamel.yaml从YAML文件中获取评论?

来自分类Dev

如何在python中将YAML拆分为不同的文件?

来自分类Dev

如何在Python中舍入yaml.dump的数字输出?

来自分类Dev

如何在Python中从字典的多个值访问单个键

来自分类Dev

如何在Python中以文件为键的字典?

来自分类Dev

如何在Jekyll YAML配置中访问多个嵌套变量

来自分类Dev

如何在python中从字典中写入多个文件

来自分类Dev

如何在YAML文件中的Python中打印不带字符串的[]

来自分类Dev

如何在python中从文件(json或yaml)动态创建参数化测试

来自分类Dev

如何在YAML文件的Python中打印不带字符串的[]

来自分类Dev

如何在python的YAML文件中为logging.handlers.SysLogHandler设置输出

来自分类Dev

如何在 Python 中的多个字典的字典中添加相同的“项目”?

来自分类Dev

如何使用python更新Yaml文件

来自分类Dev

如何使用python更新Yaml文件?

来自分类Dev

如何使用python更新Yaml文件?

来自分类Dev

如何在Ada中读取yaml文件

来自分类Dev

如何在保留原始顺序的同时在Python中加载YAML文件

来自分类Dev

如何在python中从yaml存储或读取文字回车符和换行符

来自分类Dev

如何在Terraform中使用yaml文件?

来自分类Dev

在python中读取Yaml文件时如何跳过行?

来自分类Dev

python-如何从api spec yaml文件中检索数据?

来自分类Dev

如何在Go中解组YAML

来自分类Dev

如何在Yaml中创建数组的数组?

来自分类Dev

如何在 Arcanist 中设置 YAML linting?

来自分类Dev

访问文件中的多个字典 - Python

来自分类Dev

如何在Python中采用多个字典的线性组合?

来自分类Dev

如何在python中基于给定数字创建多个字典?

Related 相关文章

  1. 1

    如何在Python中向YAML文件添加注释

  2. 2

    我如何在 python 中编辑 yaml 文件

  3. 3

    如何在python中使用ruamel.yaml从YAML文件中获取评论?

  4. 4

    如何在python中将YAML拆分为不同的文件?

  5. 5

    如何在Python中舍入yaml.dump的数字输出?

  6. 6

    如何在Python中从字典的多个值访问单个键

  7. 7

    如何在Python中以文件为键的字典?

  8. 8

    如何在Jekyll YAML配置中访问多个嵌套变量

  9. 9

    如何在python中从字典中写入多个文件

  10. 10

    如何在YAML文件中的Python中打印不带字符串的[]

  11. 11

    如何在python中从文件(json或yaml)动态创建参数化测试

  12. 12

    如何在YAML文件的Python中打印不带字符串的[]

  13. 13

    如何在python的YAML文件中为logging.handlers.SysLogHandler设置输出

  14. 14

    如何在 Python 中的多个字典的字典中添加相同的“项目”?

  15. 15

    如何使用python更新Yaml文件

  16. 16

    如何使用python更新Yaml文件?

  17. 17

    如何使用python更新Yaml文件?

  18. 18

    如何在Ada中读取yaml文件

  19. 19

    如何在保留原始顺序的同时在Python中加载YAML文件

  20. 20

    如何在python中从yaml存储或读取文字回车符和换行符

  21. 21

    如何在Terraform中使用yaml文件?

  22. 22

    在python中读取Yaml文件时如何跳过行?

  23. 23

    python-如何从api spec yaml文件中检索数据?

  24. 24

    如何在Go中解组YAML

  25. 25

    如何在Yaml中创建数组的数组?

  26. 26

    如何在 Arcanist 中设置 YAML linting?

  27. 27

    访问文件中的多个字典 - Python

  28. 28

    如何在Python中采用多个字典的线性组合?

  29. 29

    如何在python中基于给定数字创建多个字典?

热门标签

归档