gpt4 book ai didi

ruby-on-rails - 如何从 YAML 文件中收集条目?

转载 作者:数据小太阳 更新时间:2023-10-29 08:47:59 27 4
gpt4 key购买 nike

我有如下 YAML 文件:

position_details:

star_performer:
title: "Star Performer"
description: ""

idiot of year:
title: "idiot of year"
description: "The Idiot of year Award recognizes excellence in anti - social collaboration on social platform ."

我需要收集 title 其关联的 description 不存在,例如从上面的文件中我需要收集标题 “Star Performer” 。我怎样才能做到这一点?

最佳答案

如果你的意思是通过过滤器你想收集那些标题

data = YAML.load(File.read(File.expand_path('path/to/your.yml', __FILE__)))

positions_with_no_description = data["position_details"].each_value.collect do |pos|
pos["title"] if pos["description"].empty?
end

根据 toro2k 的评论,如果您使用的是 Rails,您可以用空白代替吗?为空?涵盖不存在描述键的情况。

此外,这将为您提供一个包含 nil 值的数组 positions_with_no_description。要消除它们,只需调用 compact!

上述的简明版本可以是:

filtered = data["position details"]
.each_value
.collect { |p| p["title"] if p["description"].blank? }
.compact!

我已经在你的测试 yml 文件上测试过它并且它有效。错误是我错误地使用了 “position_details”,而您将“position details”作为您的关键字 - 没有下划线。

我刚刚测试过的来自 IRB 的确切代码:

> data = YAML.load(File.read(File.expand_path('../test.yml', __FILE__))
> data["position details"].each_value.collect { |x| x["title"] if x["description"].empty? }.compact!
> # => ["Star Performer"]

关于ruby-on-rails - 如何从 YAML 文件中收集条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21623115/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com