我正在尝试将某些内容写入.yaml文件,但我对documentation感到困惑。它说如下:
<nav>
<ul class="beg-container">
<!-- beg-->
<li>
<!-- insusfful-->
<ul class="left-container">
<!-- left-->
<li class="protectionn" style="width: 276px; border-right: 1px solid lightgray;">
<a href="#"><img src="images/protection.png" width="20px;">payment protection program</a>
</li>
<li style="width: 119px; border-right: 1px solid lightgray; "><a href="#">how we work</a></li>
<li class="televesionn" style=" padding-left: 10px">
<a href="#"><img src="images/televesion.png" width="20px"> watch our latest film</a>
</li>
</ul>
</li>
<li>
<!-- insusfful-->
<ul class="right-container">
<!-- right -->
<li><a href="#">post buy requirement</a></li>
<li style="width: 150px; border-left: 1px solid lightgray;" style="width: 276"><a href="#">dowload app</a></li>
<li style="width: 50px; border-left: 1px solid lightgray;"><a href="#">help</a></li>
<li style="width: 175px; border-left: 1px solid lightgray;"><a href="#">+9196969696</a></li>
</ul>
</li>
</ul>
</nav>
所以我试图在yaml文件中得到与此类似的结果:
Block mapping can be nested:
# YAML
hero:
hp: 34
sp: 8
level: 4
orc:
hp: 12
sp: 0
level: 2
# Python
{'hero': {'hp': 34, 'sp': 8, 'level': 4}, 'orc': {'hp': 12, 'sp': 0, 'level': 2}}
当我尝试使用文档示例中使用的内容时,会产生以下结果:
User1:
name: 'name1'
id: 001
strikes: 1
User2:
name: 'name2'
id: 002
strikes: 3
为此,我使用了以下代码:
User1: {id: '001', name: name1, strikes: 1}
User2: {id: '002', name: name2, strikes: 3}
答案 0 :(得分:4)
默认情况下,PyYAML会以flow-style写出复合叶节点,其余以块样式写出。
如果您不想这样,即希望所有内容都是块式的,请使用safe_dump(data, default_flow_style=False)
:
import sys
import yaml
strikes = {'User1': {'name': 'name1', 'id': '001', 'strikes': 1}, 'User2': {'name': 'name2', 'id': '002', 'strikes': 3}}
yaml.safe_dump(strikes, sys.stdout, default_flow_style=False)
给出:
User1:
id: '001'
name: name1
strikes: 1
User2:
id: '002'
name: name2
strikes: 3
没有理由使用yaml.dump()
代替yaml.safe_dump()
(我绝对希望您没有使用yaml.load()
代替yaml.safe_load()
)