【发布时间】:2026-02-11 01:30:01
【问题描述】:
我正在尝试以我想要的方式对 YAML 块映射序列进行排序...我想要类似的东西
depth: !!opencv-matrix
rows: 480
cols: 640
dt: f
data: 'x'
但每次我做倾销时,它都会变成
cols: 640
data: 'x'
depth: !!opencv-matrix
dt: f
rows: 480
我在这里检查了一种简单易用的方法
ordering = ['ymlFile','depth', 'rows', 'cols', 'dt', 'data']
ordered_set = [{'depth': '!!opencv-matrix'}, {'rows' : depthSizeImg[0]}, {'cols' : depthSizeImg[1]}, {'dt' : type(img_d[0][0])}, {'data': ymlList.tolist()}]]
f = open(out_d, 'a')
f.write('%YAML:1.0 \n')
f.write(yaml.dump(data, default_flow_style=None, allow_unicode=False, indent = 4))
f.close()
但它使 YAML 不是嵌套的。
%YAML:1.0
- {depth: '!!opencv-matrix'}
- {rows: 323}
- {cols: 110}
- {dt: !!python/name:numpy.float32 ''}
- {data: 'x'}
我怎样才能得到正确的输出?
【问题讨论】:
-
我还不得不说,我检查并使用了here 给出的第一个解决方案,但是我收到一条消息,告诉我“ValueError:要解压的值太多”... 关于第二个选项,有人可以告诉我作为翻斗车我可以提供什么参数吗?非常感谢(只是为了澄清......数据不仅仅是一个字符......它是一个我不想放在这里的长 numpy 数组的内容)
-
我尝试了第二个选项并给了我同样的错误。伙计们,我取决于你和你的想法。