如何在yaml
文件中创建变量或别名,并在新创建的别名或变量中添加更多字符串数据。
- #示例
item: &root_directory "/home/pritam/" # This is root path of root directory of a linux systme
barsrc_file: *root_directory + ".barsrc" # Try to append some string vlaue in with root_directory.
zshrc_file: *root_directory + ".zshrc"
字符串
我想创建一个变量。名称为**root_directory,**其中我不必再次输入root_directory的文本。
我使用python3.11的yaml模块在python中加载yaml文件作为dict。
import yaml
def interpolate_constructor(loader, node):
value = loader.construct_scalar(node)
return os.path.expandvars(value)
# Register the custom constructor
yaml.SafeLoader.add_constructor('!interpolate', interpolate_constructor)
# Load the YAML file
with open('confing.yaml') as file:
data = yaml.safe_load(file)
# Access the values
item_value = data['item']
barcrc_file_value = data['name']['barcrc_file']
print(f"item: {item_value}")
print(f"barcrc_file: {barcrc_file_value}")
型
1条答案
按热度按时间esbemjvw1#
YAML不是一种编程语言,没有变量或数据转换功能。有一个
!!merge
标记,它是过时的YAML 1.1的可选扩展,可以合并Map,但仅此而已。当然,你也可以编写自己的构造函数来实现这一点:
字符串
这给了
型