簡體   English   中英

使用python解析Yaml文件時出現問題

[英]Having a problem to parse Yaml file with python

我在 YML 文件中有以下部分,我正在嘗試讀取服務器的 IP 地址和主機名,以驗證我沒有重復(可以看到每個 IP 一次和每個主機名)

我在第一階段嘗試准備 IP 地址時失敗了。 很樂意在閱讀和驗證沒有重復方面獲得幫助

謝謝

import yaml


with open(r'.\environment.yml') as file:
    environment = yaml.load(file, Loader=yaml.FullLoader)
print(environment ['server_details']['ip'])
YML文件
server_details: - {ip: "{{ yum_repository.ip }}" , hostname: "{{ yum_repository.hostname }}"} - {ip: "{{ cloudera_managment_server.ip }}" , hostname: "{{ cloudera_managment_server.hostname }}"} - {ip: "{{ postgres_server.ip }}" , hostname: "{{ postgres_server.hostname }}"} - {ip: 10.201.51.30 , hostname: master1} - {ip: 10.201.51.31 , hostname: master2} - {ip: 10.201.51.32 , hostname: master3} - {ip: 10.201.51.36 , hostname: worker1} - {ip: 10.201.51.37 , hostname: worker2} - {ip: 10.201.51.38 , hostname: worker3} - {ip: 10.201.51.39 , hostname: kafka1} - {ip: 10.201.51.40 , hostname: kafka2} - {ip: 10.201.51.41 , hostname: kafka3} - {ip: 10.201.51.44 , hostname: gw1}

正如@AdamSmith 提到的,您應該先遍歷(或索引)列表。

import yaml


with open(r'.\environment.yml') as file:
    environment = yaml.load(file, Loader=yaml.FullLoader)
for server_detail in environment['server_details']:
    print(server_detail['ip'])

你也可以把它列出來

ip_list = [server_detail['ip'] for server_detail in environment['server_details']]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM