python yaml配置文件,python yml 读写包含中文

  python yaml配置文件,python yml 读写包含中文

  

  yaml简介

  1.YAML [JML] :另一种标记语言:另一种标记语言。Yaml是专门用来写配置文件的语言,非常简洁,功能强大。以前,配置文件可以用ini编写。看了yaml,发现这个更直观方便,有点类似json格式。

  2.2.yaml的基本语法规则:

  区分大小写。

  用来表示等级关系。

  缩进时不允许使用Tab键,只允许使用空格。

  中缩进的空格数并不重要,只要同一级别的元素左侧对齐即可。

  #表示注释,解析器将忽略从这个字符到行尾的注释。这和python注释是一样的。

  3.3.yaml支持三种数据结构:

  对象:一组键值对,也称为映射)/散列)/字典。

  :按顺序排列的一组值,也称为序列)/列表。

  标量:一个单一的,不可分割的价值。字符串、布尔值、整数、浮点数、空值、时间、日期

  

  1.用pip安装pyyaml模块。

  pipinstallpyyaml

  安装yaml

  1.yaml中的键值对,也就是python中的字典数据类型,比如python中的字典,YAML如何写。

  #python3.6

  {

  用户 : 管理员:

  psw:123456,

  }在yaml文件中,可以这样写:

  #yaml

  用户:管理员

  Psw:1234562。字典嵌套字典

  #python3.6

  nb1:{

  用户 : 管理员:

  psw:123456,

  } 3.在}3.yaml文件中可以这样写:

  #yaml

  nb1:

  用户:管理员

  Psw:1234564。python中读取yaml文件的案例如下。首先,通过open方法读取文件数据,然后通过load方法将其转换为字典。这个负载类似于json中的负载。

  #编码:utf-8

  importyaml

  进口货

  #获取当前脚本所在文件夹的路径

  cur path=OS . path . dirname(OS . path . real path

  (__file__))

  #获取yaml文件路径

  yamlPath=os.path.join(curPath,"cfgyaml.yaml")

  #open方法打开直接读出来

  f=open(yamlPath,'r',encoding='utf-8')

  cfg=f.read()

  print(type(cfg))#读出来是字符串

  print(cfg)

  d=yaml.load(cfg)#用load方法转字典

  print(d)

  print(type(d))运行结果如下:

  序列(list)

  1.yaml里面写一个数组,前面加一个‘-’符号,如下:

  

-admin1:123456

  -admin2:111111

  -admin3:222222

对应python里面的list

  

[{'admin1':123456},

  {'admin2':111111},

  {'admin3':222222}]

注意:数字读出来的是int或float类型

  纯量(str)

  1.int和float类型的数字

  

n1:12.30
对应python

  

{'n1':12.3}
2.布尔值用true和false表示

  

n2:true

  n3:false

对应python

  

{'n2':True,'n3':True}
3.None用~表示

  

n4:~
对应python

  

{'n4':None}
4.时间采用 ISO8601 格式。

  

time1:2001-12-14t21:59:43.10-05:00
对应python

  

{'time1':datetime.datetime(2001,12,15,2,59,43,100000)}
5.日期采用复合 iso8601 格式的年、月、日表示。

  

date1:2017-07-31
对应python

  

{'date1':datetime.date(2017,7,31)}
6.使用两个感叹号,强制转换数据类型。

  

#int转str

  n6:!!str123

对应python

  

{'n6':'123'}
#bool值转str

  n7:!!strtrue

对应python

  

{'n7':'true'}
7.在yaml文件写入以下内容:

  

n1:12.30

  n2:true

  n3:false

  n4:~

  time1:2018-04-18t21:59:43.10+08:00

  date1:2018-04-18

  n6:!!str123

  n7:!!strtrue

python读取结果:

  

{'n1':12.3,

  'n2':True,

  'n3':False,

  'n4':None,

  'time1':datetime.datetime(2018,4,18,13,59,43,100000),

  'date1':datetime.date(2018,4,18),

  'n6':'123',

  'n7':'true'}

混合使用

  1.list嵌套dict,在yaml里面写入如下内容:

  

-user:admin1

  psw:'123456'

  -user:admin2

  psw:'111111'

  -user:admin3

  psw:'222222'

用python读取出来的结果:

  

[{'user':'admin1','psw':'123456'},

  {'user':'admin2','psw':'111111'},

  {'user':'admin3','psw':'222222'}]

2.dict嵌套list,在yaml里面写入如下内容:

  

nub1:

  -admin1

  -'123456'

  nb2:

  -admin2

  -'111111'

  nb3:

  -admin3

  -'222222'

用python读取出来的结果:

  

{'nub1':['admin1','123456'],

  'nb2':['admin2','111111'],

  'nb3':['admin3','222222']}

众多python培训视频,尽在盛行IT软件开发工作室,欢迎在线学习!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: