yaml 文件(字符串)的解析

前言

我在遇到准备将一串符合yaml 的字符串进行解析,在搜索之后发现解析yaml 基本都是对文件进行解析。但自己字符串用 new Yaml().loadAs 无法解析,按道理也是支持字符串不应该不支持。想到自己字符串的换行可能不对,那么在java中如何才认为是一个换行呢?

BufferedWriter writer = new BufferedWriter(write);
writer.newLine() 这样一个方法,看了这个实现方式

 String lineSeparator = java.security.AccessController.doPrivileged(
            new sun.security.action.GetPropertyAction("line.separator")); 

这个是一个换行符, 通过这个看到换行符实际就是一个\r\n 但是又给自己拼接出来不一样。
效果就是
在这里插入图片描述
自己拼接出来\r\n ,如果是通过上面反复获取到换行符那就是真的换行了。那么有了上面理解就有下面一篇对字符串解析的工具类

实践

package com.yin.common.util;

import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.yaml.snakeyaml.Yaml;
import sun.security.action.GetPropertyAction;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.security.AccessController;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;

/**
 * @author yin
 * @since 2022/3/20 14:45
 */
public class YmlUtil {
   

    private static Logger logger = LoggerFactory.getLogger(YmlUtil.class);

    public static void main(</
在Python中,如果有一个表示列表的YAML格式字符串,并希望将其转换为实际的Python `list`对象,同样可以借助`PyYAML`库完成这项任务。 ### 将YAML字符串转换为List 假设我们有这样的一个字符串形式的YAML内容代表了一个列表: ```yaml fruits: - Cherry ``` 现在想要把它转化为Python里的列表。下面是具体的步骤和代码示例: #### 步骤1: 确保已安装PyYAML库 如果没有安装过PyYAML的话,请先按照之前提到的方式进行安装: ```bash pip install pyyaml ``` #### 步骤2: 加载并解析YAML字符串 然后就可以使用`yaml.safe_load()`函数来处理这个字符串了。注意这里直接传入的是一个字符串而非文件句柄。 ```python import yaml # 表达式作为字符串存储 yaml_string = """ fruits: - Apple - Banana - Cherry """ # 解析YAML字符串得到Python字典 data_dict = yaml.safe_load(yaml_string) # 提取出列表部分 fruit_list = data_dict['fruits'] print(fruit_list) # 输出应该是 ['Apple', 'Banana', 'Cherry'] # 直接获取值作为一个单独的操作也可行 fruit_list_directly = yaml.safe_load(yaml_string)['fruits'] print(fruit_list_directly) # 同样输出 ['Apple', 'Banana', 'Cherry'] ``` 在这个过程中,`yaml.safe_load()`会返回整个文档对应的最外层结构——在这里即是一个包含键名为`"fruits"`及其关联值(我们的目标列表)的字典。因此我们需要进一步访问该字典项才能获得最终的目标列表。 对于一些简单的情况,比如纯数组类型的YAML字符串可以直接加载为列表而无需额外提取过程: ```python simple_yaml_string = "- Item1\n- Item2" result_list = yaml.safe_load(simple_yaml_string) print(result_list) # 结果将是 ['Item1', 'Item2'] ``` 这就是将YAML格式的字符串转化成Python list的基本方法啦!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值