在没有文件的情况下创建YAML文档的正确方法是什么?

时间:2017-05-24 11:40:31

标签: python yaml pyyaml

我想在python程序(使用PyYAML)中从头开始创建一个YAML文件,以便在HTTP请求体内发送它。我在PyYAML docs中找到的最接近的是:

import yaml
document = """
  a: 1
  b:
    c: 3
    d: 4
"""
yaml.load(document)
send_req(document)

然而,我发现它丑陋并且不太可维护,所以我希望能够做到这样的事情:

document = {'a': 1, 'b': {'c': 3, 'd': 4}}
yaml.load(document)
send_req(document)

所以我可以用编程方式修改它的结构,用变量等等。

如何从python对象结构创建YAML文档?

1 个答案:

答案 0 :(得分:0)

我认为你想要的是yaml.dump

document = {'a': 1, 'b': {'c': 3, 'd': 4}}
print(yaml.dump(document))
>>> a: 1
b: {c: 3, d: 4}

对于简单的Python对象,您甚至可以直接序列化.__dict__

class MyClass(object):
    def __init__(self, a, b):
        self.a = a
        self.b = b

my_obj = MyClass(1, 2)
print(yaml.dump(my_obj.__dict__))
>>> {a: 1, b: 2}