yaml数据类型之_数组或列表类型

本文介绍了如何使用Python的yaml库将yaml文件中以-开头的数组转换为列表类型,通过get_yaml_data函数实现,并展示了实际的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

yaml数组类型转列表类型。
yaml数组类型:以 - 开头的行表示构成一个数组。
数组:一组按次序排列的值,又称为序列(sequence)/列表(list)。
# test.yaml 文件内容
# 下面格式读到Python里会是个list
- 100
-
  - 1
  - 2
  - 3

# python 代码
import yaml
import os

# 项目路径
project_path = os.path.split(os.path.realpath(__file__))[0].split('tools')[0]


def get_yaml_data(fileDir):
    """
    读取 test.yaml 文件内容
    :param fileDir:
    :return:
    """
    # 1、在内存里加载这个文件
    f = open(fileDir, 'r', encoding='utf-8')
    # 2、调用yaml读取文件
    # Loader=yaml.FullLoader 更加安全
    res = yaml.load(f, Loader=yaml.FullLoader)
    return res


if __name__ == '__main__':
    info = get_yaml_data(project_path + r'\test.yaml')
    print(info)

# 输出:
# [100, [1, 2, 3]]
### 使用 `@Value` 注解引用 YAML 文件中定义的一维数组 在 Spring Boot 应用程序中,可以通过 `@Value` 注解读取 YAML 配置文件中的属性值。对于一维数组的处理,Spring 支持通过特定的语法将其注入到 Java 类字段中。 #### 定义 YAML 文件中的数组 假设有一个名为 `application.yml` 的配置文件,在其中定义了一个字符串类型数组: ```yaml my-array: ["value1", "value2", "value3"] ``` 此段代码展示了如何在一个 YAML 文件里声明一个简单的列表[^1]。 #### 在 Java 类中使用 `@Value` 注解获取数组 下面是一个例子,说明怎样利用 `@Value` 来加载上述定义的数据结构: ```java import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Component public class MyComponent { @Value("${my-array}") private String[] myArray; public void printValues() { for (String value : myArray) { System.out.println(value); } } } ``` 需要注意的是,当从 YAML 文件读取集合类型时,应该确保所使用的变量能够容纳相应的数据形式——在这个案例中即为 `String[]` 数组[^2]。 另外一种方式是采用 SpEL 表达式来解析更复杂的场景下的数组列表对象。例如: ```java @Value("#{'${my-array}'.split(',')}") private List<String> myList; ``` 这里运用了 SpEL(Spring Expression Language),它允许更加灵活的操作,比如分割逗号分隔符串成独立项并存入 `List<String>` 中[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卢同学.

但行好事 莫问前程

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值