我正在尝试理解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?
答案 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
。直接做后者会更快。