在我开始之前,是的,我已经研究过了,知道YAML不区分引号和非引号,只接受它们的类型。坦白地说,我认为没有引号会更好,但不幸的是,这不是我需要的。因此,请尝试并理解我已经调查过这件事,但仍然需要在我的字符串对象周围加上引号。在
在我的代码里我有一本字典:
data = {dic:[{A:''}, {B:''}, {C:''}, {D:''},...]}
'var*'
是通过PyQt4QLineEdit
类构造的,代码行提取该行如下所示:
所以当我做data['dic'][index]['A'-'Z'] = var*
它变成data = {dic:[{A: 'var1'}, {B:'var2'}, {C:'var3'}, {D:'var4'},...]}
然后我把我所有的数据都转储了:
prettyData = yaml.dump(data, default_flow_style=False, width=10000000)
而且print prettyData
我得到了这个:
dic:
- A: var1
- B: var2
- C: var3
- D: var4
...
我尝试了很多方法来让它们出现:
dic:
- A: 'var1'
- B: 'var2'
- C: 'var3'
- D: 'var4'
...
但还没有成功。在这件事上,我听到了不同的意见,从“不可能”到“只是引证一下”,正如你所见,在我的情况下,我不能这样做。在
有什么办法吗?在
可以覆盖标量的发射器并更改动态发射的值的样式。根据您拥有的其余标量值,您可能需要进行更多的测试来取消
is_string
。当调用process_scalar
时,您已经不知道原始值了,您只有一个带有(unicode)字符串值的事件。在得到输出¹:
^{pr2}$¹这是使用ruamel.yaml完成的,我是其中的作者。那个包裹是 皮亚姆的增强。您可以使用后者执行类似的操作,但它会删除输入中的注释。
结果是:
^{pr2}$类似地,您可以为unicode、dict(考虑排序dict)等添加representers
相关问题 更多 >
编程相关推荐