# 1.占位填值

import yaml
from jinja2 import Template


# 读取YAML文件
def read_yaml_as_str(file_path: str):
    """
    读取YAML文件并返回字符串
    :param file_path:
    :return:
    """
    with open(file_path, encoding='utf-8') as file:
        return file.read()


def write_yaml(input_data: dict, file_path: str):
    """
    将字典写入YAML文件
    :param input_data:
    :param file_path:
    """
    with open(file_path, 'w', encoding='utf-8') as file:
        yaml.safe_dump(input_data, file)


config_path = 'config.yaml'
yaml_data = read_yaml_as_str(file_path=config_path)
data = {
    'api_key': 'your_api_key',
    'api_base': 'your_api_base',
    'llm_model': 'your_llm_model'
}
t = Template(yaml_data)
filled_template = t.render(data)
print(filled_template)

write_yaml(input_data=yaml.safe_load(filled_template), file_path='config-template.yaml')

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

# 2.yaml处理

这段代码是 Python 代码,它试图从一个 YAML 文件中加载配置信息。错误信息 NameError: name 'yaml' is not defined 表示 Python 解释器在当前的命名空间中找不到 yaml 这个名称。这通常是因为缺少了必要的导入语句。

要解决这个问题,你需要确保在代码中导入了 yaml 模块。yaml 是一个用于解析和生成 YAML 文件的 Python 库。以下是修复这个问题的步骤:

  1. 确保你的环境中安装了 PyYAML 库,这是一个常用的 YAML 处理库。如果没有安装,你可以使用 pip 来安装它:

    pip install PyYAML
    
    1
  2. 在你的 Python 代码文件的顶部添加导入 yaml 模块的语句:

    import yaml
    
    1
  3. 确保 yaml_file 是一个文件对象,它应该是通过 open 函数打开的 YAML 文件。例如:

    with open('config.yaml', 'r') as file:
        yaml_file = file.read()
    config = yaml.safe_load(yaml_file)
    
    1
    2
    3

这样,当你运行代码时,它应该能够正确地导入 yaml 模块并从 YAML 文件中加载配置信息。

上次更新: 11/20/2024, 9:40:22 PM