擅长:python、mysql、java
<p>要转储自定义标记,需要定义一个类型并为该类型注册一个representer。下面是如何对标量执行此操作:</p>
<pre class="lang-py prettyprint-override"><code>import yaml
class MyTag:
def __init__(self, content):
self.content = content
def __repr__(self):
return self.content
def __str__(self):
return self.content
def mytag_dumper(dumper, data):
return dumper.represent_scalar("!anything", data.content)
yaml.add_representer(MyTag, mytag_dumper)
print(yaml.dump({"10.1.1.16": {
"text": "1470814.27",
"confidence": MyTag("")}}))
</code></pre>
<p>这散发出</p>
<pre class="lang-yaml prettyprint-override"><code>10.1.1.16:
confidence: !anything ''
text: '1470814.27'
</code></pre>
<p>请注意标记后面的<code>''</code>,这是标记的标量(不,您无法摆脱它)。您也可以标记集合,但需要相应地使用<code>represent_sequence</code>或<code>represent_mapping</code></p>