yaml 变量的使用

&用来建立锚点(defaults),<<表示合并到当前数据,*用来引用锚点。

一:字符串、整型变量的引用:使用*

注意:

1、&锚点放在你要设为变量的值前面,此处将"810F14A0A7ED3912E33033E1367FA8D3" ,设置为&token

2、直接用 *token 代替"810F14A0A7ED3912E33033E1367FA8D3"

test:
  token: &token "810F14A0A7ED3912E33033E1367FA8D3"
  params:
    _ver: "3.18.1"
    _ct: "101"
  headers:
    token: *token
    content-type: 'application/json'

headers相当于:

headers:
  token: "810F14A0A7ED3912E33033E1367FA8D3"
  content-type: 'application/json'

二:字典、元组、列表变量的引用 * 或者 << :*

1、* 应用,相当于直接替换

test:
  a : &token
    token:  "810F14A0A7ED3912E33033E1367FA8D3"
  params:
    _ver: "3.18.1"
    _ct: "101"
  headers:
    token: *token
    content-type: 'application/json'

headers相当于:

headers:
  token :
   token:  "810F14A0A7ED3912E33033E1367FA8D3"
  content-type: 'application/json'

2、<< : *   ,相当于合并

test:
  a : &token
   token:  "810F14A0A7ED3912E33033E1367FA8D3"
  params:
    _ver: "3.18.1"
    _ct: "101"
  headers:
    << : *token
    content-type: 'application/json'

headers相当于:

headers:
  token: "810F14A0A7ED3912E33033E1367FA8D3"
  content-type: 'application/json'

自我理解,有误请指出

参考:

YAML 语言教程 - 阮一峰的网络日志

### 如何在 Python 中通过 YAML 文件生成或使用随机变量Python 中,可以通过 `PyYAML` 或其他类似的解析库加载 YAML 数据并对其进行修改。如果需要在 YAML 文件中定义随机变量,则可以在读取 YAML 文件后,在内存中动态生成这些随机值。 以下是实现这一功能的具体方式: #### 动态生成随机变量 可以利用 Python 的标准库模块 `random` 来生成随机数,并将其赋值给从 YAML 文件中提取的键值对。以下是一个完整的示例代码: ```python import yaml import random # 定义一个函数用于读取 YAML 文件 def read_yaml(file_path): with open(file_path, 'r', encoding='utf-8') as file: data = yaml.safe_load(file) return data # 定义一个函数用于写入 YAML 文件 def write_yaml(data, file_path): with open(file_path, 'w', encoding='utf-8') as file: yaml.dump(data, file, allow_unicode=True) # 主逻辑:读取 YAML 并更新其中的内容为随机值 file_path = 'test06.yaml' # 替换为您自己的 YAML 文件路径 data = read_yaml(file_path) # 更新特定字段为随机值 if isinstance(data.get('password'), list): # 如果密码是列表形式 data['password'][-1] = str(random.randint(1000, 9999)) # 修改最后一个元素为随机整数[^4] # 添加新的随机字段到 YAML 对象中 data['random_field'] = { 'rand_int': random.randint(1, 100), 'rand_float': round(random.uniform(1.0, 100.0), 2), 'rand_bool': random.choice([True, False]) } # 将更新后的数据重新写回 YAML 文件 write_yaml(data, file_path) ``` 上述代码实现了以下几个目标: 1. **读取 YAML 文件** 使用 `yaml.safe_load()` 方法将 YAML 文件转换成 Python 字典。 2. **生成随机值** 利用 `random` 模块生成不同的随机数值(如整数、浮点数和布尔值)。 3. **更新 YAML 数据结构** 在原生字典的基础上新增了一个名为 `random_field` 的键及其对应的随机值集合。 4. **保存更改至文件** 调用 `yaml.dump()` 函数将更新后的数据序列化为 YAML 格式并覆盖原始文件。 #### 关于 YAML 文件中的占位符替换 当 YAML 文件中存在占位符时,可采用如下策略完成其替代过程。例如对于引用[2]提到的情况,假设有一个环境变量或者固定模式作为输入源来决定最终的实际值。此时可通过遍历整个配置树形节点逐一查找匹配项进而实施替换成指定的新内容[^2]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值