如何使用ruamel.yaml正确输出符合Dependabot要求的字符串格式
你需要先将配置内容解析为字典结构,再通过ruamel.yaml的DoubleQuotedScalarString标记时间字段为强制双引号字符串,调整后的代码如下:
import ruamel.yaml from ruamel.yaml.scalarstring import DoubleQuotedScalarString import sys # 构建配置字典,不要直接传入拼接好的字符串 test_config = { "time": DoubleQuotedScalarString("09:00") } yaml = ruamel.yaml.YAML() yaml.dump(test_config, sys.stdout)
运行后输出结果为:
time: "09:00"
原代码问题说明
你之前直接将完整的"time: 09:00"字符串传入dump方法,ruamel.yaml会将其识别为单个字符串标量处理,因此输出时会整体包裹单引号,无法得到符合要求的键值对结构。
如果是批量处理已加载的Dependabot配置,只需要遍历所有updates数组下的schedule.time字段,将值用DoubleQuotedScalarString包裹后再导出即可,即可避免Dependabot识别为整数类型的报错。
内容的提问来源于stack exchange,提问作者Bruno Miranda
相关产品推荐
相关产品推荐

