写入方法generi

2024-09-12 10:32:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个YML文件

 e_yml:
 a: https://www.google.com:8201/jde/

因为我在大多数测试用例中都使用write和read-into-YML文件方法

但由于上述方法仅限于3个键和更多的硬编码,为了更通用,我尝试这种逻辑 在这里,它只将“value”写入YML文件

它不是更新key[a],而是只将值覆盖到YML中。你知道吗

有人能帮我只更新钥匙吗?你知道吗


Tags: 文件方法httpscom编码readymlwww
1条回答
网友
1楼 · 发布于 2024-09-12 10:32:59

问题

将值写入哈希的深度嵌套键。你知道吗

解决方案

def deep_write(hash, value, *keys)
  hash.tap do |h|
    keys[0...-1].inject(h) { |h, k| h[k] ||= {} }[keys.last] = value
  end
end

检查

hash = {}
deep_write(hash, '5678234', 'jde_env', 'py')
#⇒ { "jde_env" => { "py" => "5678234" } }

用法

def write(filename, value, *args)
  data = DataMagic.load(filename)
  File.write(
    File.join(YML_DIR_PATH, filename),
    deep_write(data, value, *args).to_yaml
  )
end

相关问题 更多 >