空格引起的yaml文件读取错误

1.yaml文件读取错误

最近在进行代码交接的工作,我需要写一个配置文档。所有代码均在python下开发。我选择使用yaml文件作为配置文件。yaml文件其中的一段写法如下:
在这里插入图片描述
使用如下代码读取yaml文件

    base_path = os.getcwd()
    with open(os.path.join(base_path, path), 'r', encoding='utf-8') as stream:
        param_dict = yaml.safe_load(stream)

出现如下错误:
在这里插入图片描述

2.解决方法及原因

K0和K2后加空格,yaml文件对格式要求比较严格,这也是自己作为新手写配置文档遇到的第一个错误。修改如下:
在这里插入图片描述

3.反思

多看官方文档,多问有经验的前辈

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中可以使用SnakeYAML库来实现对YAML文件的内容排版。首先需要引入SnakeYAML的依赖,在Maven项目中可以添加以下依赖: ```xml <dependency> <groupId>org.yaml</groupId> <artifactId>snakeyaml</artifactId> <version>1.28</version> </dependency> ``` 然后可以使用以下代码来读取YAML文件并输出排版后的内容: ```java import java.io.FileInputStream; import java.io.InputStream; import org.yaml.snakeyaml.Yaml; public class YamlFormatter { public static void main(String[] args) throws Exception { String fileName = "config.yml"; InputStream inputStream = new FileInputStream(fileName); Yaml yaml = new Yaml(); Object data = yaml.load(inputStream); String formattedYaml = yaml.dump(data); System.out.println(formattedYaml); } } ``` 其中,`config.yml`是YAML文件的路径。运行该程序可以将YAML文件的内容按照默认格式输出。如果需要自定义格式,可以通过添加`DumperOptions`来实现。例如,以下代码可以设置输出的缩进为4个空格: ```java import java.io.FileInputStream; import java.io.InputStream; import org.yaml.snakeyaml.DumperOptions; import org.yaml.snakeyaml.Yaml; public class YamlFormatter { public static void main(String[] args) throws Exception { String fileName = "config.yml"; InputStream inputStream = new FileInputStream(fileName); Yaml yaml = new Yaml(getDumperOptions()); Object data = yaml.load(inputStream); String formattedYaml = yaml.dump(data); System.out.println(formattedYaml); } private static DumperOptions getDumperOptions() { DumperOptions options = new DumperOptions(); options.setIndent(4); return options; } } ``` 这样,输出的YAML文件的缩进就会变为4个空格

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值