如何使用 PyYAML 重命名密钥

Posted

技术标签:

【中文标题】如何使用 PyYAML 重命名密钥【英文标题】:How do I rename a key with PyYAML 【发布时间】:2014-07-30 00:39:54 【问题描述】:

我已经加载了一个我想要修改的 YAML 文件(模板)(键和一些值)。

例如

key_to_rename:
  a: "1"
  b: "2"
  c: "3"

如何使用 PyYAML 查找和重命名密钥?

  my_dict = yaml.load(stream)

  for key, value in my_dict.iteritems():
     if (key == "key_to_rename"):
       print key
       key = "new_name"
       print key

  print yaml.dump(my_dict)

但这仍然没有保持更改

【问题讨论】:

我确实已经加载了 YAML,但我不知道如何重命名密钥。输入来自一个文件,所以我可以替换文件中的字符串,但我认为如果我可以在 yaml dict 上这样做会更优雅。 (Stefano,我希望你不是-1) 关闭问题有多大帮助??认真的家伙!?至少给我提示一下? my_dict["new_name"] = value 然后my_dict.pop(key, None) 知道了!谢了哥们。请注意,我对 python 和 pyyaml 都是新手(今天才开始)。我们很感激有人实际上试图提供帮助而不是试图解决问题。 【参考方案1】:

感谢 Kyllopardiun

  stream = open("./tiny.yml", 'r')
  my_dict = yaml.load(stream)

  # First make a copy with a new name
  my_dict["new_name"] = qb_dict['key_to_rename'] 

  # Then remove the old key
  my_dict.pop("key_to_rename", None)

【讨论】:

以上是关于如何使用 PyYAML 重命名密钥的主要内容,如果未能解决你的问题,请参考以下文章

如何在JSON中重命名密钥

Amazon S3 boto:如何重命名存储桶中的文件?

如果存在,如何重命名哈希中的键

redis键重命名

重命名返回键完成[重复]

如何使用 PyYAML 创建日期时间对象