试图在python中使用yaml.load失败

时间:2016-07-30 19:37:49

标签: python-2.7 yaml pyyaml

我正在尝试理解yaml.load()的使用,但即使运行这个简单的代码也不适用于我:

import yaml
document = """
  a: 1
  b:
    c: 3
    d: 4
"""
print yaml.dump(yaml.load(document), default_flow_style=False)

当我执行此脚本时,会出现以下错误 - AttributeError: 'module' object has no attribute 'dump'

此代码取自PyYAML文档(http://pyyaml.org/wiki/PyYAMLDocumentation)。

我在这里缺少什么?如何在Python中学习如何使用YAML?

1 个答案:

答案 0 :(得分:1)

您调用了示例yaml.py,因此您的测试程序将使用import yaml语句导入,并且没有dump例程。 只需将yaml.py重命名为test_yaml.py

您还应该使用:

import sys

yaml.dump(yaml.load(document, sys.stdout, default_flow_style=False)

因为没有提供流作为dump()的第二个参数导致输出首先写入StringIO()对象,然后由.getvalue()在该对象上检索,然后写到sys.stdout。直接做后者会更快。