# 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
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 库。以下是修复这个问题的步骤:
确保你的环境中安装了
PyYAML
库,这是一个常用的 YAML 处理库。如果没有安装,你可以使用pip
来安装它:pip install PyYAML
1在你的 Python 代码文件的顶部添加导入
yaml
模块的语句:import yaml
1确保
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 文件中加载配置信息。