Python 从YAML文件返回所有列表及其内容
我正在尝试为列表编写自定义yaml lint规则。但是,我不知道如何仅从文件中获取列表 例如,如果我有以下文件: 变量1.yaml:Python 从YAML文件返回所有列表及其内容,python,yaml,pyyaml,Python,Yaml,Pyyaml,我正在尝试为列表编写自定义yaml lint规则。但是,我不知道如何仅从文件中获取列表 例如,如果我有以下文件: 变量1.yaml: --- 清单1: -列表1值1 -列表1值2 -列表1值3 字符串1:这是一个字符串 bool1:是的 清单2: -列表2Value1 -列表2Value2 -列表2值3 变量2.yaml: --- dict1: dict1list1: - dict1list1value1 - dict1list1value2 dict1bool1: f
---
清单1:
-列表1值1
-列表1值2
-列表1值3
字符串1:这是一个字符串
bool1:是的
清单2:
-列表2Value1
-列表2Value2
-列表2值3
变量2.yaml:
---
dict1:
dict1list1:
- dict1list1value1
- dict1list1value2
dict1bool1: false
bool2: true
list3:
- list3value1
- list3value2
- list3value3
list4:
- list4value1
- list4value2
那么我想要的是:
>>>对于名称,从\u yaml\u文件(“variable1.yaml”)获取\u列表\u中的值:
打印(名称:值)
列表1:['list1value1'、'list1value2'、'list1value3']
列表2:['list2value1'、'list2value2'、'list2value3']
>>>对于名称,get_列表中的值来自_yaml_文件(“variables2.yaml”):
打印(名称:值)
dict1list1:['dict1list1value1','dict1list1value2']
列表3:['list3value1'、'list3value2'、'list3value3']
列表4:['list4value1','list4value2']
额外的好处:声明列表的行号加载yaml后,我们有一个python dict。我们迭代dict项并检查哪个值是列表 试试下面的方法
import yaml
with open('variables1.yaml') as f:
data = yaml.load(f, Loader=yaml.FullLoader)
for k, v in data.items():
if isinstance(v, list):
print(f'{k} --> {v}')
输出
list1 --> ['list1value1', 'list1value2', 'list1value3']
list2 --> ['list2value1', 'list2value2', 'list2value3']
到目前为止,您尝试了什么?请展示您编写的代码,因为StackOverflow不是一个代码编写服务,如果您没有表现出诚实的尝试,您可能会放弃并关闭投票。