python - 访问 YAML 中的嵌套元素并输出有序的唯一 python 列表
问题描述
我正在尝试解析 yaml 文件以将嵌套的子元素输出到有序的唯一 python 列表中,该列表不包含重复值。我的输入 yaml 文件是:
# example.yml
name_1:
parameters:
- soccer
- football
- basketball
- cricket
- hockey
- table tennis
tag:
- navigation
assets:
- url
name_2:
parameters:
- soccer
- rugby
- swimming
examples:
- use case 1
- use case 2
- use case 3
我设法打印出所有父母的第一个孩子,它们是:
['assets', 'examples', 'parameters', 'tag']
使用以下代码:
import yaml
with open(r'/Users/.../example.yml') as file:
documents = yaml.full_load(file)
a_list = []
for item, doc in documents.items():
a_list.extend(doc)
res = list(set(a_list))
res.sort()
print(res)
我正在努力扩展脚本以获取parameters
-element 下方的以下有序唯一列表:
['basketball', 'cricket', 'football', 'hockey', 'rugby', 'soccer', 'swimming', 'table tennis']
在此先感谢您的任何建议!
解决方案
我能够通过迭代parameters
密钥来得到这个 -
import yaml
with open(r'example.yaml') as file:
documents = yaml.full_load(file)
a_list = []
a_vals=[]
for item, doc, in documents.items():
for val in doc['parameters']:
a_vals.append(val)
a_list.extend(doc)
res = list(set(a_list))
res.sort()
a_vals=list(set(a_vals))
a_vals.sort()
print(a_vals)
print(res)
输出 -
python.exe "pysuperclass.py"
['basketball', 'cricket', 'football', 'hockey', 'rugby', 'soccer', 'swimming', 'table tennis']
['assets', 'examples', 'parameters', 'tag']
推荐阅读
- swiftui - 渲染后swiftui页面空白
- javascript - 使用 axios 取消请求时是否会出现延迟
- typescript - Vue Prop 未定义,和/或不能在 v-for 上使用。使用打字稿和装饰器
- java - Java读写高分
- python - Sympy - Lambdify - 虚拟变量的挖掘名称
- git - 名为“master”的分支是特殊的吗?
- nativescript - nativescript-custom-local-notifications 插件给出:无法读取未定义错误的属性 \'Builder\'
- assembly - 在 MIPS 中访问 .space 元素(降序)
- spring - Spring Boot JPA OneToMany 返回 Null
- sql - SQL, max(), 分组依据