python--Yaml操作

摘要:
1、安装:pipinstallPyYaml-ihttp://pypi.douban.com/simple/--trusted-hostpypi.douban.com2、python操作Yaml库:字典--转换--字符串importyamlpython_obj={"name":u"张三","age":0,"job":"Tester"}y=yaml.dump(python_obj,default_fl

1、安装:pip install PyYaml -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

2、python操作Yaml库:

字典--转换--字符串

import yaml
python_obj ={
    "name":u"张三",
    "age":0,
    "job":"Tester"}
y=yaml.dump(python_obj,default_flow_style=False)
print(y)
print(type(y))

结果:
age:0job:Tester
name:"u5fc3u7530"

<class 'str'>

3、基本规则

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进时不允许使用Tab,只允许使用空格
  • 缩进的空格数目不重要,只要相同层级的元素左对齐即可
  • # 表示注释,从它开始到行尾都被忽略

4实例1:

test.yaml文件

#注释
#1、字典数据
name: tom #冒号后一定要加空格,才是键值对,注释前也加空格,加一个
password: 123456

test_yaml.py文件

import yaml
#操作yaml
yamlDir='test.yaml'#创建文件对象
fo=open(yamlDir,'r',encoding='utf-8')
res=yaml.load(fo,Loader=yaml.FullLoader)
print(res)

结果:{'name': 'tom', 'password': 123456}

实例2:

test.yaml文件

#2-数组(列表),注意空格
-hello
-张三
- 100

test_yaml.py文件

import yaml
#操作yaml
yamlDir='test.yaml'#创建文件对象
fo=open(yamlDir,'r',encoding='utf-8')
res=yaml.load(fo,Loader=yaml.FullLoader)
print(res)

结果:['hello', '张三', 100]

实例3:

test.yaml文件

#组合关系,注意空格和层级关系
-name: test
  psw: 1234
-aa: 100bb: 
- 30
- 40

test_yaml.py文件

import yaml
#操作yaml
yamlDir='test.yaml'#创建文件对象
fo=open(yamlDir,'r',encoding='utf-8')
res=yaml.load(fo,Loader=yaml.FullLoader)
print(res)

结果:[{'name': 'test', 'psw': 1234}, {'aa': 100, 'bb': [30, 40]}]

4、如果字符串中间有特殊符号,则必须给字符串加引号,单引号为原样输出,双引号则特殊字符其效果

'hello word'

结果:hello word

"hello word"

结果:hello

word

5、引用

&设置 *引用(内部参数化)

name: &name 张三
tester: *name

结果:{’name': '张三', 'age': '张三'}

6、分段,多组数据

test.yaml文件

---name: &name tom
age: *name
---aa: 100bb: 200

test_yaml.py文件

import yaml
#操作yaml
yamlDir='test.yaml'#创建文件对象
fo=open(yamlDir,'r',encoding='utf-8')
# res=yaml.load(fo,Loader=yaml.FullLoader)
# print(res)

#2组数据---可迭代对象
res=yaml.load_all(fo,Loader=yaml.FullLoader)
print(res)
for one inres:
    print(one)

结果:

<generator object load_all at 0x000000F125F409E0>
{'name': 'tom', 'age': 'tom'}
{'aa': 100, 'bb': 200}

7、yaml写操作

test_yaml.py文件

import yaml
#yaml写操作
yamlDir='test.yaml'fo=open(yamlDir,'w',encoding='utf-8')
data1={'name':'tom','age':20}
yaml.dump(data1,fo)

test.yaml文件内写入值:

age: 20name: tom

免责声明:文章转载自《python--Yaml操作》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇golang 写数据到excel文件 清明OpenAM之OAuth2配置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

YAML书写规则与数据结构

YAML 是一种简洁的非标记语言。YAML以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁易读。 基本规则 YAML有以下基本规则:1、大小写敏感2、使用缩进表示层级关系3、禁止使用tab缩进,只能使用空格键4、缩进长度没有限制,只要元素对齐就表示这些元素属于一个层级。5、使用#表示注释6、字符串可以不用引号标注 三种数据结构 1、ma...

python ddt数据驱动二(json, yaml 驱动)

一、通过json文件驱动 import unittestfrom ddt import ddt, file_data@ddtclass MyTest(unittest.TestCase): # test_data_list.json里的数据是[1,2,3] @file_data('test_data_list.json') def tes...

YAML简述

一、基础 YAML(Yet Another Markup Language),是一个JSON的超集,意味着任何有效JSON文件也都是一个YAML文件。它规则如下: 1)大小写敏感 2)使用缩进表示层级关系,但不支持tab缩进,只支持空格 3)缩进的数量不重要但至少一个空格,只要相同层级使用相同数量的空格即可 4)“#”表示注释,从这个字符开始,直到行末,都...

Linux上的free命令详解

解释一下Linux上free命令的输出。 下面是free的运行结果,一共有4行。为了方便说明,我加上了列号。这样可以把free的输出看成一个二维数组FO(Free Output)。例如: FO[2][1] = 24677460 FO[3][2] =10321516 1 2 3 4 5 61 total used free shared buffe...

yaml,json,ini这三种格式用来做配置文件优缺点

适合人类编写:ini > toml > yaml > json > xml > plist可以存储的数据复杂度:xml > yaml > toml ~ json ~ plist > ini 作者:赵扶摇链接:https://www.zhihu.com/question/41253282/answer/1198...

k8s的yaml说明

理解k8s里的几个概念 Kubernetes 通过各种 Controller 来管理 Pod 的生命周期。为了满足不同业务场景,Kubernetes 开发了 Deployment、ReplicaSet、DaemonSet、StatefuleSet、Job 等多种 Controller。最常用的 Deployment用来建立Pod,以下是它的步骤 kube...