gpt4 book ai didi

rust - 如何使用Serde::yaml遍历使用rust 的Yaml?

转载 作者:行者123 更新时间:2023-12-03 11:46:30 25 4
gpt4 key购买 nike

我正在使用Legion crate ,并且可以选择serde这个世界。我正在使用serde::yaml将其转换为Yaml,并且它在一个对象(Value)中具有所有实体。我想将其拆分为单独的实体,以便可以将每个实体分别写入文件中。如何遍历Yaml中的每个项目?
我来自军团的Yaml看起来像

---
Entities:
Entity 1:
Name: E1
Entity 2:
Name: E2
Entity 3:
Name: E3
我想要3个以下的Yaml,
Entity 1:
Name: E1
Entity 2:
Name: E2
Entity 3:
Name: E3
我试过下面的代码,但它 panic 地说实体不是序列,
    let yaml_serde_sequence = yaml_serde["entities"].as_sequence().unwrap();
for (i, entities) in yaml_serde_sequence.iter().enumerate() {
let yaml_as_str = serde_yaml::to_string(entities).unwrap();
println!("{}", yaml_as_str);
}

最佳答案

我可以通过使用as_mapping而不是as_sequence来获得所需的结果

let yaml_serde_tuple = yaml_serde["entities"].as_mapping().unwrap();
for (i, entities) in yaml_serde_tuple.iter().enumerate() {
let yaml_as_str = serde_yaml::to_string(entities.1).unwrap();
println!("{}", yaml_as_str);
}

关于rust - 如何使用Serde::yaml遍历使用rust 的Yaml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66407430/

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