【问题标题】:Load a YAML file and replace strings in resulting dictionary in Python在 Python 中加载 YAML 文件并替换结果字典中的字符串
【发布时间】:2019-10-11 07:30:42
【问题描述】:

我有一个 YAML 文件,我目前使用 pyyaml 将它加载到 python 对象中。我试图弄清楚如何在返回结果之前搜索和替换字符串。

def load_and_replace_yaml(directory, file_name):
    configs_path = os.path.join(directory, file_name) + '.yml'
    f = open(configs_path, 'r')
    overrides = yaml.safe_load(f.read())
    f.close()
    return overrides

所以在上面的代码中,我可以将 yaml 文件作为文件对象获取,但我不确定如何对其进行查找和替换。我也可以尝试在生成的 python 字典overrides 上进行查找和替换,但我不确定如何在字典中搜索以查找要替换的字符串。有什么帮助吗?

【问题讨论】:

  • 您可以从具有任何名称或扩展名的文件中加载 YAML 文档,但 YMLYAML 不同,并且推荐的 YAML 文件扩展名至少是 .yaml 2006 年 9 月。

标签: python python-3.x yaml pyyaml


【解决方案1】:

我意识到 f.read() 返回一个字符串,我可以在加载到 yaml.safe_load 之前调用 replace()。

【讨论】:

  • 当然,只有当字符串在文件中只出现一次,或者您要更改的实例出现在文档的开头或结尾时,才会如此。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多