yaml的格式对应json格式大概是这样的:
对应的json:
{'haizeiwang': {'cap': 'naluduo', 'doc': 'qiaoba', 'bigteam': [{'aa': 1, 'bb': 2}, {'cc': 3}, {'dd': 4}]}}
**************************************************************************************************************
先安装一个pyyaml库。pip install pyyaml。
准备一个yaml文件:py.yaml
注意箭头所示的地方要有空格
创建一个要读取yaml文件的py文件read_yaml.py
import yaml
from jsonpath import jsonpath
with open("../config/py.yaml", encoding="utf-8")as f: data = yaml.load(f.read(), Loader=yaml.FullLoader) print(data) # doctor = data["haizeiwang"]["doctor"] doctor = jsonpath(data, "$..doctor")[0] print(doctor)
加粗的两个doctor获取方法都可以,下面使用了jsonpath更简便,需要安装后使用:pip install jsonpath
打印data结果为:{'haizeiwang': {'captain': 'lufei', 'doctor': 'qiaoba'}}
打印doctor结果为:qiaoba
至此,已经成功的读取出yaml的数据了。
yaml的写操作:
with open("../config/py.yaml","w",encoding="utf-8")as f:
yaml.dump(data, f)
#此处路径与读取路径相同,会覆盖原本的yaml文件
如果想要修改指定的字段的话:
#读取后修改指定字段,在去写即可
with open("../config/py.yaml",encoding="utf-8") as f:
data = yaml.load(f, yaml.FullLoader)
print(data)
data["haizeiwang"]["captain"] = "naluduo"
print(data["haizeiwang"]["captain"])
with open("../config/py.yaml","w",encoding="utf-8")as f:
yaml.dump(data, f)