我想把一个python对象转储到一个只包含一行的YAML字符串中。但是,ruamel.yaml.safe_dump
会附加换行符以及(有时)'...'
例如,转储list或dict对象时会附加一个换行符:
import ruamel.yaml as yaml
yaml.safe_dump([1, None], default_flow_style=None)
输出:'[1, null]\n'
我需要的输出是:'[1, null]'
转储“标量”对象时,会附加更多内容:
import ruamel.yaml as yaml
yaml.safe_dump(None, default_flow_style=None)
输出:'null\n...\n'
我需要的输出是:'null'
我认为这两个预期输出都是有效的YAML语法,即
yaml.safe_load('null')
正确返回None
。
有没有什么方法(除了手动删除尾随的换行符和'...',这是非常hacky)来实现我想要的?
1条答案
按热度按时间myzjeezk1#
你不应该在ruamel.yaml中使用旧的API,它已经过时,即将被删除。
如果您希望所有内容都在一行中,则可能应该根据数据结构的复杂程度使用
.default_flow_style = True
,并加宽输出,以免出现换行。与JSON相反,YAML通常会附加一个换行符,因此最好只是转换输出,以便在第一个换行符之后添加任何内容。
其给出: