You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ruamel.yaml dump:如何阻止映射标量值换行缩进?

问题解答

为什么name: xxx会被拆分成两行?

这种换行拆分确实和值的长度直接相关。ruamel.yaml默认有行宽限制(默认80字符),当name字段对应的镜像地址+SHA256哈希的字符串总长度超过这个限制时,库会自动触发换行逻辑,将值部分移到下一行并缩进显示。

如何阻止这种换行?

只需要调整YAML实例的width参数,将其设置为一个足够大的数值,确保完整的镜像地址字符串能在一行内容纳。修改后的代码如下:

from sys import stdout
from ruamel.yaml import YAML
yml = YAML()
yml.width = 1000  # 设置足够大的行宽,避免长字符串被强制换行
doc = """
kind: ImageSetConfiguration
apiVersion: mirror.openshift.io/v1alpha2
storageConfig:
  local:
    path: ./operator-images
mirror:
  operators:
  - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.14
    packages:
    - name: rhods-operator
      channels:
      - name: fast
        minVersion: 2.7.0
        maxVersion: 2.7.0
    - name: nfd
      channels:
      - name: stable
  additionalImages:
  - name: quay.io/integreatly/prometheus-blackbox-exporter@sha256:35b9d2c1002201723b7f7a9f54e9406b2ec4b5b0f73d114f47c70e15956103b5
  - name: quay.io/modh/codeserver@sha256:7b53d6c49b0e18d8907392c19b23ddcdcd4dbf730853ccdf153358ca81b2c523
  - name: quay.io/modh/cuda-notebooks@sha256:00c53599f5085beedd0debb062652a1856b19921ccf59bd76134471d24c3fa7d
  - name: quay.io/modh/cuda-notebooks@sha256:4275eefdab2d5e32a7be26f747d1cdb58e82fb0cd57dda939a9a24e084bd1f7e
  - name: quay.io/modh/cuda-notebooks@sha256:6fadedc5a10f5a914bb7b27cd41bc644392e5757ceaf07d930db884112054265
  - name: quay.io/modh/cuda-notebooks@sha256:88d80821ff8c5d53526794261d519125d0763b621d824f8c3222127dab7b6cc8
"""
y = yml.load(doc)
yml.dump(y, stdout)

执行修改后的代码后,mirror.additionalImages中的name字段会保持为一行,不会被拆分。

内容的提问来源于stack exchange,提问作者rsaw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 09:25:55