亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python使用yaml格式文件的方法

 更新時(shí)間:2023年07月09日 09:56:17   作者:qq_44659804  
本文主要介紹了python使用yaml格式文件的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

安裝PyYAML安裝包

YAML在python語(yǔ)言中有PyYAML安裝包,下載地址:https://pypi.python.org/pypi/PyYAML

聯(lián)網(wǎng)的windows可直接win+r cmd進(jìn)入終端pip install PyYAML

配置yaml文件

進(jìn)入相應(yīng)python文件的目錄,創(chuàng)建yaml文件(略)

通過(guò)編程軟件創(chuàng)建

自定義文件后綴為 .yaml

編寫(xiě)yaml文件內(nèi)容

city: shanghai
time: 202210
successfully: 200
exception: 500

python讀取yaml文件

#使用utf-8編碼
# -*- coding:utf-8 -*-
#導(dǎo)入yaml模塊
import yaml
f = open('test.yaml', 'r', encoding='utf-8')  #讀yaml文件,編碼用utf-8
cfg = f.read()  #讀全部文件
d = yaml.load(cfg, Loader=yaml.FullLoader) # 用load方法把讀到的yaml文件內(nèi)容轉(zhuǎn)換成字典類(lèi)型
# yaml5.1版本后棄用了yaml.load(file)這個(gè)用法,因?yàn)橛X(jué)得很不安全,5.1版本之后就修改了需要指定Loader,通過(guò)默認(rèn)加載器(FullLoader)禁止執(zhí)行任意函數(shù)
# Loader=yaml.FullLoader 加上這行代碼,告警就沒(méi)了
print(d)

結(jié)果為字典類(lèi)型

{'city': 'shanghai', 'time': 202210, 'successfully': 200, 'exception': 500}

yaml文件與python代碼書(shū)寫(xiě)比較

yaml基本語(yǔ)法規(guī)則:
鍵值對(duì)
大小寫(xiě)敏感
使用縮進(jìn)表示層級(jí)關(guān)系
縮進(jìn)時(shí)不允許使用Tab鍵,只允許使用空格。
縮進(jìn)的空格數(shù)目不重要,只要相同層級(jí)的元素左側(cè)對(duì)齊即可
#表示注釋?zhuān)瑥倪@個(gè)字符一直到行尾,都會(huì)被解析器忽略,這個(gè)和python的注釋一樣
yaml支持的數(shù)據(jù)結(jié)構(gòu)有三種:
對(duì)象:鍵值對(duì)的集合,又稱為映射(mapping)/ 哈希(hashes) / 字典(dictionary)
數(shù)組:一組按次序排列的值,又稱為序列(sequence) / 列表(list)
純量(scalars):?jiǎn)蝹€(gè)的、不可再分的值。字符串、布爾值、整數(shù)、浮點(diǎn)數(shù)、Null、時(shí)間、日期

字典嵌套字典

#字典嵌套字典
#python代碼書(shū)寫(xiě)為{'dd': 'city2:shanghai2 time2:2022102'}
#dd:
#  city2: shanghai2
#  time2: 2022102

列表(或叫數(shù)組)中嵌套字典,字典中一組數(shù)據(jù)

#列表(或叫數(shù)組)中嵌套字典
#python代碼書(shū)寫(xiě)為[{'city2': 'shanghai2'}, {'time2': 2022102}, {'successfully': 200}]
#yaml里面寫(xiě)一個(gè)列表,前面加一個(gè)'-'符號(hào)
- city2: shanghai2
- time2: 2022102
- successfully: 200

列表(或叫數(shù)組)中嵌套字典,字典中多組數(shù)據(jù)

#列表(或叫數(shù)組)中嵌套字典
#python代碼書(shū)寫(xiě)為[{'city3': 'shanghai3', 'time3': 2022103}, {'city4': 'shanghai4', 'time4': 2022104}, {'city5': 'shanghai5', 'time5': 2022102}]
- city3: shanghai3
  time3: 2022103
- city4: shanghai4
  time4: 2022104
- city5: shanghai5
  time5: 2022102

字典嵌套列表

#字典嵌套列表
#python代碼書(shū)寫(xiě)為{'color1': ['red', 1], 'color2': ['bule', 2], 'color3': ['black', 3]}
color1:
  - red
  - 1
color2:
  - bule
  - 2
color3:
  - black
  - 3

組合使用

#組合使用
#python代碼書(shū)寫(xiě)為{'languages': ['Ruby', 'Perl', 'Python', 'java c++ shell'], 'websites': {'YAML': 'yaml.org', 'Ruby': 'ruby-lang.org', 'Python': 'python.org', 'Perl': 'use.perl.org'}, 'db': {'host': 'xxx', 'port': 3306, 'user': 'shanghai', 'password': 'xxx', 'db_name': 'china', 'db_type': 'mysql'}}
languages:
 - Ruby
 - Perl
 - Python
 - java c++ shell
websites:
 YAML: yaml.org
 Ruby: ruby-lang.org
 Python: python.org
 Perl: use.perl.org
db:
    host: xxx
    port: 3306
    user: shanghai
    password: xxx
    db_name: china
    db_type: mysql

其他類(lèi)型

#1、數(shù)值直接以字面量的形式表示
#number: 202210.010101 #{'number': 202210.010101}
#2、布爾值用true和false表示
#isSet: true #{'isSet': True}
#isSet1: false #{'isSet1': False}
#3、null用~表示
#parent: ~   #{'parent': None}
#4、時(shí)間采用 ISO8601 格式。
#time1: 2022-10-10t10:10:10.10-10:00  #{'time1': datetime.datetime(2022, 10, 10, 10, 10, 10, 100000, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=50400)))}
##5、日期采用復(fù)合 iso8601 格式的年、月、日表示。
#date: 2022-10-01  #{'date': datetime.date(2022, 10, 1)}
#6、YAML 允許使用兩個(gè)感嘆號(hào),強(qiáng)制轉(zhuǎn)換數(shù)據(jù)類(lèi)型,轉(zhuǎn)換成字符串str。
#int_to_str: !!str 123  #{'bool_to_str': '123'}
#bool_to_str: !!str true #{'bool_to_str': 'true'}

到此這篇關(guān)于python使用yaml格式文件的方法的文章就介紹到這了,更多相關(guān)python使用yaml內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用Python繪制3D堆疊條形圖全解析

    使用Python繪制3D堆疊條形圖全解析

    在數(shù)據(jù)可視化的工具箱里,3D 圖表總能帶來(lái)眼前一亮的效果,本文就來(lái)和大家聊聊如何使用Python實(shí)現(xiàn)繪制3D 堆疊條形圖,感興趣的小伙伴可以了解下
    2025-06-06
  • 基于Django實(shí)現(xiàn)日志記錄報(bào)錯(cuò)信息

    基于Django實(shí)現(xiàn)日志記錄報(bào)錯(cuò)信息

    這篇文章主要介紹了基于Django實(shí)現(xiàn)日志記錄報(bào)錯(cuò)信息,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • windows下Virtualenvwrapper安裝教程

    windows下Virtualenvwrapper安裝教程

    這篇文章主要為大家詳細(xì)介紹了windows下Virtualenvwrapper安裝教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Python入門(mén)教程(十六)Python的if邏輯判斷分支

    Python入門(mén)教程(十六)Python的if邏輯判斷分支

    這篇文章主要介紹了Python入門(mén)教程(十六)Python的if邏輯判斷分支,Python是一門(mén)非常強(qiáng)大好用的語(yǔ)言,也有著易上手的特性,本文為入門(mén)教程,需要的朋友可以參考下
    2023-04-04
  • 如何利用Python監(jiān)控別人的網(wǎng)站

    如何利用Python監(jiān)控別人的網(wǎng)站

    這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)監(jiān)控別人的網(wǎng)站,這樣還可以詳細(xì)了解你的競(jìng)爭(zhēng)對(duì)手網(wǎng)站,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-05-05
  • Python編解碼16進(jìn)制碼流的示例代碼

    Python編解碼16進(jìn)制碼流的示例代碼

    這篇文章主要為大家詳細(xì)介紹了Python編解碼16進(jìn)制碼流的相關(guān)資料,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-04-04
  • python通過(guò)索引遍歷列表的方法

    python通過(guò)索引遍歷列表的方法

    這篇文章主要介紹了python通過(guò)索引遍歷列表的方法,實(shí)例分析了Python遍歷列表的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-05-05
  • Python 旋轉(zhuǎn)立方體的實(shí)現(xiàn)示例

    Python 旋轉(zhuǎn)立方體的實(shí)現(xiàn)示例

    本文主要介紹了Python 旋轉(zhuǎn)立方體的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • Python自定義函數(shù)的創(chuàng)建、調(diào)用和函數(shù)的參數(shù)詳解

    Python自定義函數(shù)的創(chuàng)建、調(diào)用和函數(shù)的參數(shù)詳解

    這篇文章主要介紹了Python自定義函數(shù)的創(chuàng)建、調(diào)用和函數(shù)的參數(shù)、變量作用域等常見(jiàn)問(wèn)題,需要的朋友可以參考下
    2014-03-03
  • Django中使用group_by的方法

    Django中使用group_by的方法

    這篇文章主要介紹了Django中使用group_by的方法,實(shí)例分析了在Django中使用group_by語(yǔ)句的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05

最新評(píng)論