在python中读取YAML文件并通过匹配键值pai访问数据

2024-06-30 13:17:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Python开发一个软件,在这里我需要读取一个多层次的YAML文件,如下所示:

#Filename: SampleCase.yml
%YAML 1.1
VesselTypes:
  - Name: Escort Tug
    Length: 32
    Breadth: 12.8
    Depth: 9
    Draughts:
    - Name: Draught1
      Mass: 500
      CentreOfGravity: [16.497, 0, 4.32]
    TowingStaples:
    - Name: Staple1
      Position: [0, 0, 0]
    Thrusters:
    - Name: Port Propeller
      Position: [0, -1, 0]
      MaxRPM: 1800
      MaxPower: 2525
    - Name: Stbd Propeller
      Position: [0, 1, 0]
      MaxRPM: 1800
      MaxPower: 2525
  - Name: Ship    
Vessels:
  - Name: Tug
    VesselType: Escort Tug
    Draught: Draught1
    InitialPosition: [0, 0, 0]
    Orientation: [0, 0, 0]
  - Name: Tanker
    VesselType: Ship
    Draught: Draught1
    InitialPosition: [0, 0, 0]
    Orientation: [0, 0, 0]
    Speed: 8  

这里有两艘船,分别叫拖船和油轮。有“护航拖轮”和“船舶”两种船型。

#Filename: main.py
import yaml
# Reading YAML data
file_name = 'SampleCase.yml'
with open(file_name, 'r') as f:
    data = yaml.load(f)

print(data["Vessels"][0]["Name"])

我可以使用索引号(例如data["Vessels"][0]["Name"])访问存储的数据,但我想使用匹配的键访问它们。例如,我想打印名为“拖船”的船舶的左舷螺旋桨的最大转速值。在python中执行此操作的标准方法是什么?


Tags: nameyamldataymlpositionfilenamepropellership