网站效果代码,小广告,做类似电影天堂的网站违法吗,长沙制作公园仿竹护栏哪家好关于yamlYAML语言的设计目标#xff0c;就是方便人类读写。如果你想要实现一些用ini不好做到的配置#xff0c;可以使用yaml格式作为配置文件大小写敏感使用缩进表示层级关系缩进时不允许使用Tab键#xff0c;只允许使用空格。缩进的空格数目不重要#xff0c;只要相同层级…关于yamlYAML语言的设计目标就是方便人类读写。如果你想要实现一些用ini不好做到的配置可以使用yaml格式作为配置文件大小写敏感使用缩进表示层级关系缩进时不允许使用Tab键只允许使用空格。缩进的空格数目不重要只要相同层级的元素左侧对齐即可yaml数据结构YAML 支持的数据结构有三种。对象键值对的集合又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)对象的一组键值对使用冒号结构表示。数组一组按次序排列的值又称为序列(sequence) / 列表(list)一组连词线开头的行构成一个数组。纯量(scalars)单个的、不可再分的值包括字符串布尔值整数浮点数Null时间日期一个yaml文件name: John Smithage: 37spouse:name: Jane Smithage: 25children:- name: Jimmy Smithage: 15- name: Jenny Smithage: 12和它对应的json文件如下{ name: John Smith,age: 37,spouse: { name: Jane Smith, age: 25 },children:[ { name: Jimmy Smith, age: 15 },{ name: Jenny Smith, age: 12 } ]}读写yaml文件import yamlif __name__ __main__:with open(father.yml) as f:content yaml.load(f)# output: print(type(content))print(content)content.update({age: 38})print(content)with open(PyYAML.yml, w) as nf:yaml.dump(content, nf)生成的新yaml文件形式如下age: 38children:- {age: 15, name: Jimmy Smith}- {age: 12, name: Jenny Smith}name: John Smithspouse: {age: 25, name: Jane Smith}仔细一看跟原yaml文件不像嘛尤其是几个大括号很刺眼这可怎么办使用ruamel.yaml代替PyYAML解决方法就是使用ruamel.yaml代替PyYAML因为PyYAML貌似已经不再维护了安装pip install ruamel.yaml使用ruamel.yaml库里面函数参数Loaderruamel.yaml.RoundTripLoader和Dumperruamel.yaml.RoundTripDumper可以用来保持新生成的yaml文件的表现和输入文件一致。代码如下from ruamel import yamlif __name__ __main__:with open(father.yml) as f:content yaml.load(f, Loaderyaml.RoundTripLoader)# output: print(type(content))print(content)content.update({age: 38})print(content)with open(ruamel.yml, w) as nf:yaml.dump(content, nf, Dumperyaml.RoundTripDumper)生成新的yaml文件形式如下正是我们期望的格式name: John Smithage: 38spouse:name: Jane Smithage: 25children:- name: Jimmy Smithage: 15- name: Jenny Smithage: 12代码下载本文代码已经归档到github您可以访问下面的链接获得欢迎star该代码仓库。代码地址