python Python - 在YAML列表中搜索要更改或插入的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python Python - 在YAML列表中搜索要更改或插入的值相关的知识,希望对你有一定的参考价值。

#!/usr/bin/python

import yaml, sys

if len(sys.argv) < 3:
    print 'Usage: run.py <inputfile> <outputfile>'
    print '<inputfile>: connector.yml'
    print '<outputfile>: userConfigurations.yaml'
    sys.exit()

key_name = 'packageId'
list_name = 'packages'


class MyDumper(yaml.Dumper):
    """
    json list indenter fix
    """
    def increase_indent(self, flow=False, indentless=False):
        return super(MyDumper, self).increase_indent(flow, False)


output_file = sys.argv[2]
input_file = sys.argv[1]


x = yaml.load(open(output_file))
y = yaml.load(open(input_file))
for i, element in enumerate(x[list_name]):
    if element[key_name] == y[0][key_name]:
        x[list_name].pop(i)
x[list_name].append(y[0])

f = open(output_file, 'w')
f.write(yaml.dump(x, Dumper=MyDumper, default_flow_style=False))
f.close()

以上是关于python Python - 在YAML列表中搜索要更改或插入的值的主要内容,如果未能解决你的问题,请参考以下文章

python——Yaml

Python操作yaml文件

Python如何调用yaml文件中的参数来执行ssh命令

python读取yaml文件

01 python基础——python解析yaml类型文件

Python基础10--yaml文件的写法与使用