Python中的Yaml文件未以正确的值加载

时间:2019-11-20 14:26:55

标签: python kubernetes yaml

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

以下是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"

我希望注释部分显示在原始文件中。有什么建议吗?

我在网上查看了许多答案,其中大多数与阅读yaml文件有关,与我的问题没有明确联系

1 个答案:

答案 0 :(得分:0)

这可能是关于如何输出yaml_content的问题。您可以尝试以下方法:

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

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