【问题标题】:Yaml file in Python not loading with correct valuesPython中的Yaml文件未加载正确的值
【发布时间】:2020-03-16 07:20:36
【问题描述】:

我正在使用具有“命令”部分的 yaml 库在 python 中加载 yaml 文件(存在于 kubernetes pod 的容器中)。

下面是yaml文件中的命令部分:

command:
- sh
- "-c"
- |
  addgroup 2000
  adduser -D -G 2000 2000
  chown -R 2000:2000 /sh_pvc
  chmod 760 /sh_pvc 

以下是我用来读取 yaml 文件的代码(我正在猛击容器并读取文件):

yaml_content = yaml.safe_load(stream(KubeCtl.v1.connect_get_namespaced_pod_exec, name = pod_name, namespace = pod_namespace, command=['/bin/sh', '-c', 'cat test_file.yaml'], stderr=True, stdin=True, stdout=True, tty=True))

注意:KubeCtl.v1 是一个 kubernetes api 服务器对象。 'test_file.yaml' 是正在读取的 yaml 文件

响应 yaml_content 是一个字典,其中的命令部分如下所示:

  - command:
    - sh
    - -c
    - "addgroup 2000\nadduser -D -G 2000 2000 \nchown -R 2000:2000 /sh_pvc\nchmod\
      \ 760 /sh_pvc\n"

我希望 cmets 部分按原样显示在原始文件中。对此有何建议?

我在网上看了很多答案,其中大部分都是关于阅读 yaml 文件的,并没有专门针对我的问题

【问题讨论】:

    标签: python kubernetes yaml


    【解决方案1】:

    这可能是yaml_content如何输出的问题。你可以试试这个:

    print(yaml.dump(yaml_content, default_flow_style=False))
    

    不会打印出块样式指示符|

    【讨论】:

      猜你喜欢
      • 2023-04-03
      • 2021-04-30
      • 2019-06-12
      • 2020-03-09
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      • 2015-09-02
      • 1970-01-01
      相关资源
      最近更新 更多