尝试在 python 中使用 yaml.load 失败
Trying to use yaml.load in python fails
我正在尝试了解 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?
您调用了您的示例 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
。直接做后者更快
我正在尝试了解 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?
您调用了您的示例 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
。直接做后者更快