草庐IT

Pyyaml-yaml

全部标签

python - 如何控制 PyYAML 用于我的数据的标量形式?

我有一个具有短字符串属性和长多行字符串属性的对象。我想将短字符串写为YAML引用的标量,将多行字符串写为文字标量:my_obj.short="Hello"my_obj.long="Line1\nLine2\nLine3"我希望YAML看起来像这样:short:"Hello"long:|Line1Line2Line3如何指示PyYAML执行此操作?如果我调用yaml.dump(my_obj),它会产生类似dict的输出:{long:'line1line2line3',short:Hello}(不知道为什么long是这样的双倍行距...)我可以指示PyYAML如何处理我的属性吗?我想同时影

python - pyyaml 正在产生不希望的 !!python/unicode 输出

我正在使用pyyaml将对象转储到文件中。对象中有几个unicode字符串。我以前这样做过,但现在它会产生这样的输出项:'item':!!python/unicode"somestring"而不是想要的:'item':'somestring'我打算输出为utf-8。我当前使用的命令是:yaml.dump(data,file(suite_out,'w'),encoding='utf-8',indent=4,allow_unicode=True)在其他位置,我执行以下操作并且有效:codecs.open(suite_out,"w","utf-8").write(yaml.dump(suit

MongoDB YAML "Unrecognized option: security"

我在WindowsServer2012上运行MongoDB2.6版。我在设置YAML配置文件以确保安全和授权时遇到问题。当我有以下配置文件时,我只收到一条错误消息“无法识别的选项:安全性”。我的配置有什么问题?mongod_test.conf:security:authorization:enabledauthenticationMechanisms:MONGODB-CRstorage:dbPath:F:\MongoData命令行:mongod.exe--configmongod_test.conf我已经在我的文件中添加了空格,这解决了部分问题。使用上面的更新配置,我得到的当前错误是:

MongoDB YAML "Unrecognized option: security"

我在WindowsServer2012上运行MongoDB2.6版。我在设置YAML配置文件以确保安全和授权时遇到问题。当我有以下配置文件时,我只收到一条错误消息“无法识别的选项:安全性”。我的配置有什么问题?mongod_test.conf:security:authorization:enabledauthenticationMechanisms:MONGODB-CRstorage:dbPath:F:\MongoData命令行:mongod.exe--configmongod_test.conf我已经在我的文件中添加了空格,这解决了部分问题。使用上面的更新配置,我得到的当前错误是:

python - 将 YAML 文件转换为 python dict

我在将YAML文件中的文档映射到dict并正确映射它们时遇到以下问题。我有以下YAML文件,它代表一个服务器(db.yml):instanceId:i-aaaaaaaaenvironment:us-eastserverId:someServerawsHostname:ip-someipserverName:somewebsite.comipAddr:192.168.0.1roles:[webserver,php]我加载了这个YAML文件,我可以毫无问题地这样做,我想我明白了。instanceId=getInstanceId()stream=file('db.yml','r')dict=

python - PyYAML 可以按非字母顺序转储 dict 项目吗?

我正在使用yaml.dump来输出一个字典。它根据键按字母顺序打印出每个项目。>>>d={"z":0,"y":0,"x":0}>>>yaml.dump(d,default_flow_style=False)'x:0\ny:0\nz:0\n'有没有办法控制键/值对的顺序?在我的特定用例中,反向打印(巧合地)就足够了。不过,为了完整起见,我正在寻找一个显示如何更精确地控制订单的答案。我看过使用collections.OrderedDict但PyYAML不(似乎)支持它。我还查看了yaml.Dumper的子类化,但我无法弄清楚它是否能够更改项目顺序。 最佳答案

python - 在 PyYAML 中保存/转储带有注释的 YAML 文件

我有一个如下所示的yaml文件:#Thefollowingkeyopensadoorkey:value有没有办法在维护评论的同时load和dump这些数据? 最佳答案 如果您使用的是block结构的YAML,您可以使用python包¹ruamel.yaml它是PyYAML的衍生物,支持评论的往返保存:importsysimportruamel.yamlyaml_str="""\#examplename:#detailsfamily:Smith#verycommongiven:Alice#oneofthesiblings"""yaml

python - pyyaml:不带标签的倾销

我有>>>importyaml>>>yaml.dump(u'abc')"!!python/unicode'abc'\n"但我想要>>>importyaml>>>yaml.dump(u'abc',magic='something')'abc\n'什么魔法参数强制不标记? 最佳答案 您可以使用safe_dump代替dump。请记住,那时它将无法表示任意Python对象。此外,当您loadYAML时,您将获得一个str对象而不是unicode。 关于python-pyyaml:不带标签的倾销,

python - 如何将 YAML 文件解析/读取到 Python 对象中?

如何将YAML文件解析/读取到Python对象中?例如,这个YAML:Person:name:XYZ到这个Python类:classPerson(yaml.YAMLObject):yaml_tag='Person'def__init__(self,name):self.name=name顺便说一句,我正在使用PyYAML。 最佳答案 如果您的YAML文件如下所示:#treeformattreeroot:branch1:name:Node1branch1-1:name:Node1-1branch2:name:Node2branch2-

python - 在 Python 中,如何将 YAML 映射加载为 OrderedDicts?

我想获得PyYAML的加载器将映射(和有序映射)加载到Python2.7+OrderedDict类型,而不是普通的dict和它当前使用的对列表。最好的方法是什么? 最佳答案 Python>=3.6在python3.6+中,似乎默认情况下保留了dictloading顺序,没有特殊的字典类型。另一方面,默认的Dumper按键对字典进行排序。从pyyaml5.1开始,您可以通过传递sort_keys=False来关闭它:a=dict(zip("unsorted","unsorted"))s=yaml.safe_dump(a,sort_ke