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

如何将文本文件读取的哈希字符串写入YAML文件且不带单引号

解决PyYAML输出带0x前缀字符串时自动添加单引号的问题

问题根源

PyYAML会自动识别以0x开头的字符串为潜在的十六进制数值,为避免后续解析时的类型歧义,默认会给这类字符串添加单引号,导致输出不符合预期。

解决方案

通过yaml.scalarstring.PlainScalarString将目标字符串包装为纯标量字符串,强制PyYAML以无引号格式输出。添加sort_keys=False可保持原有YAML的键顺序(若无需保留顺序可省略)。

修改后的代码:

import yaml
from yaml.scalarstring import PlainScalarString

input_file_path = 'output.txt'

# 读取输入文件中的哈希值
with open(input_file_path, 'r') as input_file:
    value = input_file.read().strip()

# 读取原有YAML数据
with open('temp.yaml', 'r') as file:
    yaml_data = yaml.safe_load(file)

# 将哈希值包装为PlainScalarString,强制无引号输出
yaml_data['DataSecurityContainer']['items'][0] = PlainScalarString(value)

# 写入修改后的YAML
with open('temp.yaml', 'w') as file:
     yaml.dump(yaml_data, file, default_style=None, sort_keys=False)

验证结果

执行后生成的YAML文件将符合预期:

DataSecurityContainer:
  items:
  - 0x88f8ad77bb388f63674991a8692618a459bec731d15e6c8cf3755050af98a075

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 13:07:22