26

在转储/序列化输入中具有长行的数据时,pyyaml 会在新行中添加额外的缩进 - 这很烦人,我们如何避免在两行/多行中进行这种转换?

例如

在 [1] 中:

x = "-c /home/user/test/test2/test23/tet/2s/test1/stest/longdirectory1/directory2/ --optnion12 --verbose"

在 [2] 中:import yaml

在 [3] 中:print (yaml.dump([dict(ATTRIBUTES=[dict(CONFIG=x)])], default_flow_style=False))

一个错误

- ATTRIBUTES:
  - CONFIG: -c /home/user/test/test2/test23/tet/2s/test1/stest/longdirectory1/directory2/
      --optnion12 --verbose

应该是这样的

- ATTRIBUTES:
  - CONFIG: -c /home/user/test/test2/test23/tet/2s/test1/stest/longdirectory1/directory2/ --optnion12 --verbose
4

1 回答 1

43

感谢@MathieuMarques 建议查看@dump 选项和提供的链接,YAML 文档不足以找到它。

无论如何,解决方案是为函数指定width参数。dump

IEyaml.dump(data, width=1000)

@RandomCoder建议用于yaml.dump(data, width=float("inf"))永久解决方案的更好方法。

于 2013-08-30T06:09:29.620 回答