0 0

请问YAML的输出问题5

require "yaml.rb"

class Person
  def initialize (name,age)
    @name=name
    @age=age
  end
end

p1=Person.new("jack",26)
p2=Person.new("Alan",30)
File.open("j.yaml","w") do |os|
  YAML::dump(p1,os)
  YAML::dump(p2,os)
end  

f=YAML::load_file("j.yaml")
puts f.to_yaml


问题1
YAML文件的写入过程是否正确?因为j.yaml的文件是这样的
--- !ruby/object:Person
age: 26
name: jack
--- !ruby/object:Person
age: 30
name: Alan

---如果是文件头的话,那么怎么会有两个文件头?

问题2
如何读取j.yaml的内容?
2008年12月29日 14:18

1个答案 按时间排序 按投票排序

0 0

我建議將兩個person放入array,再dump比較合理。

取出之時,f 就是載入兩個person的array

p1=Person.new("jack",26) 
p2=Person.new("Alan",30) 

File.open("j.yaml","w") do |os| 
  YAML::dump([p1,p2],os) 
end   
  
f=YAML::load_file("j.yaml") 
puts f.to_yaml 

2008年12月31日 12:21

相关推荐

    c++版yaml库yaml-cpp

    - **写入YAML**:`YAML::Emitter`类用于构建YAML输出。创建一个`YAML::Emitter`对象,然后调用各种方法添加节点和数据。 ```cpp YAML::Emitter out; out << YAML::BeginMap; // 开始一个映射 out << YAML::Key ; ...

    yaml-cpp-yaml-cpp-0.5.3.tar.gz_yaml-cpp_yaml-cpp0.5

    通过组合使用这些方法,我们可以构建出符合需求的YAML输出。 在实际应用中,通常会结合`Yaml::Node`和`Yaml::Emitter`进行读写操作。首先,使用`Yaml::Parser`读取YAML文件并构建出`Yaml::Node`树,然后通过遍历和...

    MatLab的YAML库文件

    在MATLAB中,YAML(YAML Ain't Markup Language)是一种流行的数据序列化格式,它被广泛用于存储配置文件、数据传输以及版本控制系统中的元数据。YAML库为MATLAB提供了一个接口,允许用户轻松地读取和写入YAML格式的...

    yaml-cpp.tar.gz

    5. **错误处理**:当解析或生成YAML时遇到问题,yaml-cpp会抛出异常,提供详细的错误信息帮助定位问题。 6. **配置选项**:库的构建可以设置不同的配置选项,例如是否启用RTTI(运行时类型信息)和异常处理,以适应...

    yaml-cpp-master_library_yaml_cpp_

    3. **序列化**:将C++的数据结构转换为YAML格式,以便输出到文件或字符串。 4. **异常处理**:当解析过程遇到错误时,库会抛出异常,帮助开发者识别并修复问题。 5. **兼容性**:yaml-cpp库通常与C++标准库兼容,...

    python读取yaml文件后修改写入本地实例

    为了解决这个问题,可以使用`ruamel.yaml.RoundTripLoader`和`ruamel.yaml.RoundTripDumper`,它们能保持YAML文件的原始格式。如果你使用`round_trip_load()`和`round_trip_dump()`方法,效果是一样的,它们都是为...

    yaml支持jar包——snakeyaml

    1. `Yaml`: 这是SnakeYAML的主要入口点,用于加载YAML文件或流,以及生成YAML输出。 2. `Representer`: 用于将Java对象转化为YAML表示的类,可以通过自定义实现来调整输出格式。 3. `Constructor`: 解析YAML输入并...

    Go-yaml是一个命令行YAML处理器

    Go-YAML是一个基于Go语言的库,用于处理YAML(YAML Ain't Markup Language)格式的数据。YAML是一种常见的数据...这两个工具的组合使用,可以帮助开发者快速解析、验证、操作和输出YAML数据,极大地提高了工作效率。

    yaml-cpp-linux.zip

    `YAML::LoadFile`函数用于从文件加载YAML数据,而`YAML::Emitter`和`YAML::Node::Dump`则用于将C++对象转换并输出为YAML格式。 在实际应用中,YAML-cpp可以广泛应用于各种场景,如游戏配置、软件设置、数据持久化等...

    YAML解析器 SnakeYAML.7z

    2. **生成YAML输出**:使用`Yaml.dump()`方法,可以将Java对象转换为YAML格式的字符串,然后写入文件或输出流。这对于创建配置文件或生成易于阅读的报告非常有用。 3. **自定义映射规则**:SnakeYAML允许你定义...

    yaml文件解析详解-yaml

    **yaml文件解析详解** yaml文件是一种常见的配置文件格式,它以简洁、易读著称,相比ini或conf类型的配置文件,yaml提供了更丰富的数据类型支持,并且在读取时能够保持原有的数据类型不变。yaml文件的解析通常依赖...

    前端开源库-json2yaml

    - **灵活性**:`json2yaml` 支持多种输入和输出方式,包括从文件读取、从字符串转换以及将结果写入文件或返回为字符串。 ### 使用方法 1. **安装**:首先,你需要通过npm(Node.js包管理器)来安装`json2yaml`。在...

    Python库 | ruamel.yaml.cmd-0.5.10.tar.gz

    此外,它还可能包含了一些实用的命令行选项,如格式化输出,验证YAML的语法正确性,或者进行YAML数据的合并和比较。 使用"ruamel.yaml.cmd",开发者无需编写Python代码,就能直接在终端进行YAML数据的处理。这对于...

    PyPI 官网下载 | ruamel.yaml-0.15.1-cp27-cp27mu-manylinux1_x86_64.whl

    2. **保留空白**:ruamel.yaml会保留YAML文档中的空白字符(如缩进和空格),使得输出的YAML保持原样,这对于需要展示格式化的YAML输出的应用很有帮助。 3. **类的直接映射**:ruamel.yaml支持将YAML数据直接映射到...

    puppet-parser:解析人偶清单并生​​成YAML输出

    木偶解析器解析人偶清单并生​​成已定义节点和类的YAML输出。 提供诸如已定义资源,资源替代,参数,包含和变量之类的信息。 注意:此解析器是从项目的分支开始的。 在更改了多个文件并需要生成更多输出信息之后,...

    YAML解析器 SnakeYAML

    5. **错误处理**:当解析YAML文档遇到问题时,SnakeYAML会抛出异常,提供详细的错误信息帮助开发者定位问题。 ### 使用示例 以下是一个简单的使用SnakeYAML进行反序列化的Java代码示例: ```java import org.yaml....

    基于python+pytest+requests+yaml+allure接口自动化测试框架项目源码.zip

    本项目可能使用yaml文件来定义测试用例的输入和期望输出,以实现数据驱动测试。 4. **allure**: Allure是一个高质量的测试报告工具,它能够生成详细、美观且功能丰富的测试报告。Allure支持多种测试框架,包括...

    yaml-cpp-master.zip_cpp master_opencv cmake_yaml_yaml-cpp

    yaml-cpp库使得在C++程序中处理YAML数据变得容易,这对于配置文件或者数据输入/输出场景非常有用。 这个项目可能涉及到以下步骤: - 使用CMake配置项目,设置编译选项,链接OpenCV库。 - 编写C++代码,利用yaml-cpp...

    YOLOv8 _ 代码逐行解析(二) _ 从yaml文件到模型定义(代码逐行注释,小白必看)_yolov8打印出的模型结构与yaml对应关系-CSDN博客(1).html

    YOLOv8 _ 代码逐行解析(二) _ 从yaml文件到模型定义(代码逐行注释,小白必看)_yolov8打印出的模型结构与yaml对应关系-CSDN博客(1).html

    PyPI 官网下载 | ruamel.yaml-0.12.14-cp33-cp33m-manylinux1_x86_64.whl

    1. **RoundTripLoader和RoundTripDumper**:这是`ruamel.yaml`提供的两个主要类,分别用于加载YAML文档和输出YAML文档。它们能保留原始格式的特性,使得读写操作更加灵活。 2. **Comments**: `ruamel.yaml`允许你...

Global site tag (gtag.js) - Google Analytics