【发布时间】:2012-06-12 14:18:19
【问题描述】:
我有这个数字代码,到目前为止,它有一堆 prints 在计算运行时提供几条信息。
为了让我更轻松地处理信息,我正在使用 YAML。对于 C++,存在以下语法
YAML::Emitter out;
out << YAML::BeginSeq;
out << "eggs";
out << "bread";
out << "milk";
out << YAML::EndSeq;
很好用。我现在想知道 Python 是否存在类似的东西。 我刚才遇到的一个粗略的等价物是 PyYAML,如果我没记错的话,上面的等价物看起来像
print yaml.emit([yaml.StreamStartEvent(),
yaml.DocumentStartEvent(),
yaml.SequenceStartEvent(anchor=None, tag=None, implicit=True),
yaml.ScalarEvent(anchor=None, tag=None, implicit=(True, False), value=u'eggs'),
yaml.ScalarEvent(anchor=None, tag=None, implicit=(True, False), value=u'bread'),
yaml.ScalarEvent(anchor=None, tag=None, implicit=(True, False), value=u'milk'),
yaml.SequenceEndEvent()
])
哇,这太冗长了。你知道不那么冗长的语法/Python YAML 包吗?
当然,总是有yaml.dump(),但重要的是要立即写出数据。
【问题讨论】:
-
这很危险地接近于“向我推荐一些 X”的问题,所以不适合。我建议专门要求一个不那么冗长的 Python YAML 库(或一种使 PyYAML 不那么冗长的方法)。
-
是的,这是一个很好的提示;重新制定。