簡體   English   中英

如何讀取 yaml 到 python 中列表的特定行

[英]how to read specific lines of list in yaml to python

我有 2 個文件,第一個是ip_list.yaml ,它是

globals:
  hosted_zone: "test.com"
  endpoint_prefix: defalt
  ip_v4:
    - 123
    - 234
    - 456
      
  ip_v6:
    - 123
    - 234
    - 345

另一個是network.py

# Creating IP rules sets
        ip_set_v4 = wafv2.CfnIPSet(
            self,
            "IPSetv4",
            addresses=[
                # how do i parse the ip_v4 from ip_list.yaml
            ],
            ip_address_version="IPV4",
            name="ipv4-set",
            scope="CLOUDFRONT",
        )

        ip_set_v6 = wafv2.CfnIPSet(
            self,
            "IPSetv6",
            addresses=[
                # how do i parse the ip_v6 from ip_list.yaml
            ],
            ip_address_version="IPV6",
            name="ipv6-set",
            scope="CLOUDFRONT",
        )

我如何只從ip_list.yaml中讀取 ip_v4 和 ip_v6 下的所有值,然后分別將它們放入 ip_set_v4 和 ip_set_v6 的network.py地址中? (我把評論放在network.py中的地方)

您可以使用pyyaml庫來解析YAML文件並提取您需要的值,如下所示 -

import yaml

# Load the YAML file
with open("ip_list.yaml", "r") as f:
    data = yaml.safe_load(f)

# Extract the values for ip_v4 and ip_v6
ip_v4 = data["globals"]["ip_v4"]
ip_v6 = data["globals"]["ip_v6"]

# Use the values in the network.py script
ip_set_v4 = wafv2.CfnIPSet(
    self,
    "IPSetv4",
    addresses=ip_v4,     # <-----------------
    ip_address_version="IPV4",
    name="ipv4-set",
    scope="CLOUDFRONT",
)

ip_set_v6 = wafv2.CfnIPSet(
    self,
    "IPSetv6",
    addresses=ip_v6,     # <-----------------
    ip_address_version="IPV6",
    name="ipv6-set",
    scope="CLOUDFRONT",
)

暫無
暫無

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

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