婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 簡單介紹Python的第三方庫yaml

簡單介紹Python的第三方庫yaml

熱門標簽:高德地圖標注是免費的嗎 百度地圖標注位置怎么修改 大連crm外呼系統 北京電信外呼系統靠譜嗎 無錫客服外呼系統一般多少錢 洪澤縣地圖標注 梅州外呼業務系統 老人電話機器人 地圖標注視頻廣告

一、yaml基本介紹

yaml是Python的第三方庫。YAML is a human friendly data serialization standard for all programming languages(YAML是一個對所有編程語言都很友好的數據序列化標準)。
但為了強調該語言以數據為中心,而不是以標記語言為重點,而用返璞詞重新命名。它是一種直觀的能夠被電腦識別的數據序列化格式,是一種可讀性高且容易被人類閱讀、容易和腳本語言(不僅僅是Python)交互,用于表達資料序列的編程語言。YAML語言的本質是 一種通用的數據串行化格式。

二、適用場景

  • 在腳步語言中使用,實現簡單,解析成本低;
  • 序列化;
  • 編程時寫配置文件,比xml快,比ini文檔功能更強。
  • YAML是專門用于寫配置文件的語言,非常簡潔和強大,遠比JSON格式方便。

三、基本的語法規則

  • 大小寫敏感;
  • 使用縮進表示層級關系;
  • 縮進時不允許使用Tab鍵,只允許使用空格;
  • 縮進的空格數目不重要,只要相同層級的元素左側對齊即可(一般2個或4個空格);
  • #表示注釋當前行。

四、YAML支持的三種數據結構

  • 對象:即鍵值對的集合,又稱為映射(mapping)/哈希(hashes)/字典(dictionary);
  • 數組:一組按次序排列的值,又稱為序列(sequence)/列表(list);
  • 純量:單個的、不可再分的值。

4.1 對象

使用冒號代表,格式為 key: value。冒號后須加一個空格。
使用縮進表示層級關系,如下:

key:
  child_key1: value1
  child-key2: value2

YAML還支持流式(flow)語法表示對象,上例可寫成:

key: {child_key1: value1, child_key2: value2}

這在Python中是 字典嵌套字典,是這么寫的:

"key": {
        "child_key1":"value1",
        "child_key2":"value2"
       }

較為復雜的對象格式,可使用 一個問號 加一個空格代表一個復雜的key,配合一個冒號加一個空格 代表一個value:

? 
  - complex_key1
  - complex_key2
: 
  - complex_value1
  - complex_value2

上述表示:對象的屬性是一個數組[complex_key1, complex_key2],其對應的值也是一個數組[complex_value1, complex_value2]。

4.2 數組

使用一個短橫線 加一個空格代表一個數組項:

hobby:
  - python
  - test

也可以這樣說:

-
  - python
  - test

可簡單理解為:[[python, test]]
再看一個相對復雜的例子:

role:
- 
  id: 1
  name: developer
  auth: dev
- 
  id: 2
  name: tester
  auth: test 

可理解為:role屬性是一個數組,每個數組元素又是由id、name、auth 3個屬性構成。
用流式(flow)的方式表示如下:

role: [{id: 1, name: developer, auth: dev}, {id: 2, name: tester, auth: test}]

4.2.1 對象和數組

可結合使用,形成復合結構

languages:
 - Ruby
 - Perl
 - Python 
websites:
 YAML: yaml.org 
 Ruby: ruby-lang.org 
 Python: python.org 
 Perl: use.perl.org

4.3 純量

純量是最基本的、不可再分的值。YAML提供了多種常量結構:整數、浮點數、字符串、NULL、日期、布爾值、時間。

int: 
- 123
- 0b1010_0111_0100_1010_1110 # 二進制表示
float:
- 3.14159
- 6.6e+5 # 可使用科學計數法
string:
- 'Hello world!' # 可使用雙引號或單引號包裹特殊字符,雙引號不會對特殊字符轉義。
- newline
  newline2 # 字符串可拆成多行,每一行會被轉化成一個空格
null: 
 nodeName: 'node'
 parent: ~ # 使用 ~ 表示null
boolean: 
 - TRUE # true 或True都可以
 - FALSE # false 或False都可以
date:
- 2018-12-29 # 日期必須使用ISO 8601格式,即yyyy-MM-dd
datetime: 
- 2018-12-29T18:43:21+08:00 #時間使用ISO 8601格式,時間和日期之間使用T連接,最后使用+代表時區

4.4 還有一些特殊符號

4.4.1 — YAML可在同一個文件中,使用—表示一個文檔的開始

server: 
  address: 192.168.1.100
---
spring: 
  profiles: development
  server: 
    address: 127.0.0.1
---
spring:
  profiles: production
  server: 
    address: 192.168.1.120

上述例子定義兩個profile,一個development、一個production。

也可以用 —來分割不同的內容,比如記錄日志:

---
Time: 2018-12-29T19:09:30+08:00
User: ed
Warning:
  This is an error message for the log file.
---
Time: 2018-12-29T19:11:45+08:00
User: ed
Warning:
  A slightly different error message.

4.4.2 …和—配合使用,在一個配置文件中代表一個的結束

---
time: 19:13:09
player: Tim
action: strike
...
---
time: 20:14:45
player: Lily
action: grand
...

此例相當于在一個yaml文件中連續寫了兩個yaml配置項。

4.4.3 YAML中使用!!做類型強行轉換

string:
  - !!str 123456
  - !!str true

相當于將數字和布爾類型強轉為字符串(允許轉換的類型還有很多)。

4.4.4 > 在字符串中表示折疊換行;| 保留換行。這兩個符號是YAML中字符串經常使用的符號

acomplistment: >
  Mark set a major league
  home run record in 1998.
status: |
  65 Home Runs
  0.278 Batting Average

accomplistment的結果為:

accomplistment=Mark set a major league home run record in 1998.

status的結果為:

status=65 Home Runs
 0.278 Batting Average

4.4.5 引用。重復的內容在YAML中可使用來完成錨點定義,用*來完成錨點引用

hr: 
  - Mark McGwire
  - SS Sammy Sosa
rbi: 
  - *SS
  - Ken Griffey

在hr中,使用SS為Sammy Sosa設置了一個錨點(引用),名稱為SS;在rbi中,使用*SS完成了錨點使用。結果是:

{rbi=[Mark McGwire, Ken Griffey], hr=[Mark McGwire, Sammy Sosa]}

也可以這樣定義:

SS: SS Sammy Sosa
hr:
 - Mark McGwire
 - *SS
rbi:
 - *SS 
 - Ken Griffey

還可以用錨點定義更復雜的內容:

default: default
    - Mark McGwire
    - Sammy Sosa
hr: *default

hr相當于引用default數組。不過,hr: *default須寫在同一行。

4.4.6 合并內容。主要是和錨點配合使用,可將一個錨點內容直接合并到一個對象中

merge:
  - CENTER { x: 1, y: 2 }
  - LEFT { x: 0, y: 2 }
  - BIG { r: 10 }
  - SMALL { r: 1 }
  
sample1: 
    : *CENTER
    r: 10
    
sample2:
     : [ *CENTER, *BIG ]
    other: haha
    
sample3:
     : [ *CENTER, *BIG ]
    r: 100

在merge中,定義了四個錨點,分別在sample中使用。

sample1中,: *CENTER意思是引用{x: 1,y: 2},并且合并到sample1中,那么合并的結果為:sample1={r=10, y=2, x=1}

sample2中,: [*CENTER, *BIG] 意思是聯合引用{x: 1,y: 2}和{r: 10},并且合并到sample2中,那么合并的結果為:sample2={other=haha, x=1, y=2, r=10}

sample3中,引入了*CENTER, *BIG,還使用了r: 100覆蓋了引入的r: 10,所以sample3值為:sample3={r=100, y=2, x=1}

有了合并,我們就可以在配置中,把相同的基礎配置抽取出來,在不同的子配置中合并引用即可。

五、實戰

5.1 安裝yaml

yaml包名是 pyyaml,但導入是yaml。

5.2 Python使用yaml

以 【用Python 讀取yaml文件(后綴可為 .yml 或 .yaml)】為例:先用open方法讀取文件數據,再通過load方法轉成字典(load方法跟json的load是相似的)。

在同一個文件夾下,編寫yaml文件,名為 cfg.yml,內容如下:

nb:
  user: admin
  psw: 123456

編寫讀取yaml文件的.py文件,名為 readyml.py,內容如下:

import yaml
import os

curPath = os.path.dirname(os.path.realpath(__file__)) # 獲取當前腳本所在文件夾路徑
ymlPath = os.path.join(curPath, "cfg.yml") # 獲取yaml文件路徑

# 用open方法打開直接讀取
f = open(ymlPath, 'r')
cfg = f.read()
print(type(cfg)) # 讀取的結果是 字符串
print(cfg)

d = yaml.load(cfg) # 用load方法轉字典
print(d)
print(type(d))

a = {'name': 'Tom',
	'race': 'cat',
	'traits': ['Two_Hand', 'Two_Eye']
}
ret = yaml.dump(a)
print(ret)
print(type(ret))

其中,最重要的兩個方法:

  • load(),解析yaml文檔,返回一個Python對象;
  • load_all(),如果是string或文件包含幾塊yaml文檔,可用該方法來解析全部的文檔,生成一個迭代器;
  • dump(),將一個Python對象生成為一個yaml文檔;
  • dump_all(),將多個段輸出到一個yaml文檔中。

到此這篇關于簡單介紹Python的第三方庫yaml的文章就介紹到這了,更多相關Python庫yaml內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python 如何把docker-compose.yaml導入到數據庫相關條目里
  • python excel和yaml文件的讀取封裝
  • python使用yaml 管理selenium元素的示例
  • Python自動化測試中yaml文件讀取操作
  • Python讀取yaml文件的詳細教程
  • 使用python腳本自動生成K8S-YAML的方法示例
  • Python基于yaml文件配置logging日志過程解析
  • Python使用pyyaml模塊處理yaml數據

標簽:吉林 洛陽 怒江 泉州 清遠 安慶 長春 岳陽

巨人網絡通訊聲明:本文標題《簡單介紹Python的第三方庫yaml》,本文關鍵詞  簡單,介紹,Python,的,第三方,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《簡單介紹Python的第三方庫yaml》相關的同類信息!
  • 本頁收集關于簡單介紹Python的第三方庫yaml的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美电影免费观看高清完整版在线| 欧美丰满少妇xxxxx高潮对白 | 欧美酷刑日本凌虐凌虐| 欧美一级在线视频| 一区二区三区精品| 337p日本欧洲亚洲大胆色噜噜| 中文字幕一区二区三中文字幕| 成人高清视频在线观看| 亚洲欧洲日产国产综合网| 色综合天天综合网国产成人综合天| 亚洲天天做日日做天天谢日日欢 | 久久电影网站中文字幕| 日韩精品一区在线观看| 国产精品主播直播| 国产精品的网站| 欧美亚州韩日在线看免费版国语版| 一区二区三区美女视频| 91麻豆.com| 麻豆精品新av中文字幕| 中文字幕+乱码+中文字幕一区| 99精品国产91久久久久久| 亚洲人成网站在线| 日韩欧美第一区| thepron国产精品| 日韩精品亚洲专区| 国产精品午夜在线| 欧美一区三区二区| 国产99久久久国产精品免费看 | 精品国产一区二区三区久久久蜜月| 精品亚洲porn| 亚洲免费观看高清完整| 精品对白一区国产伦| 波多野结衣亚洲| 蓝色福利精品导航| 亚洲美女少妇撒尿| 欧美激情资源网| 91精品国产色综合久久不卡电影| 风间由美一区二区av101| 亚洲成av人片在www色猫咪| 欧美国产欧美综合| 日韩精品在线网站| 欧美日韩国产不卡| 色婷婷综合中文久久一本| 久久97超碰国产精品超碰| 亚洲香肠在线观看| 中文字幕一区二区三区在线播放| 日韩免费看的电影| 91精品国产一区二区三区香蕉| 97精品久久久久中文字幕 | 亚洲精品一区二区三区在线观看| 91麻豆蜜桃一区二区三区| 青青草原综合久久大伊人精品优势| 亚洲欧美另类小说| 中文字幕制服丝袜成人av | 精品av久久707| 欧美亚洲丝袜传媒另类| 丁香五精品蜜臀久久久久99网站| 精品一区二区综合| 久久国产精品99精品国产| 蜜桃精品视频在线| 免费观看91视频大全| 免费观看30秒视频久久| 久久国产乱子精品免费女| 麻豆精品视频在线观看免费| 日本91福利区| 美女精品自拍一二三四| 国产呦精品一区二区三区网站| 美脚の诱脚舐め脚责91 | 日韩专区一卡二卡| 亚洲成a人片在线观看中文| 五月婷婷综合激情| 另类调教123区| 国产九九视频一区二区三区| 粉嫩av一区二区三区粉嫩| 成人av在线播放网站| 99久久精品国产一区| 在线一区二区视频| 欧美日韩国产成人在线免费| 4hu四虎永久在线影院成人| 欧美久久一二区| 日韩精品一区二区在线| 久久看人人爽人人| 亚洲欧洲日产国产综合网| 亚洲电影激情视频网站| 美日韩一区二区三区| 国产一区二区三区综合| 91丨九色丨国产丨porny| 在线电影欧美成精品| 精品国产一区久久| 亚洲免费视频中文字幕| 日本欧美在线看| 国产91色综合久久免费分享| 在线观看亚洲a| 日韩欧美不卡在线观看视频| 中文字幕久久午夜不卡| 亚洲第一电影网| 成人网在线播放| 欧美三级在线播放| 国产亚洲精久久久久久| 中文字幕免费观看一区| 五月激情综合网| 成人天堂资源www在线| 制服.丝袜.亚洲.另类.中文| 国产三区在线成人av| 亚洲小少妇裸体bbw| 国产成人8x视频一区二区| 欧美精品一级二级三级| 国产日韩欧美综合在线| 亚洲线精品一区二区三区八戒| 大陆成人av片| 精品乱人伦一区二区三区| 亚洲免费观看高清完整版在线| 久久国产精品72免费观看| 欧美日韩小视频| 亚洲卡通动漫在线| 国产成人亚洲精品狼色在线 | 欧美精品日韩精品| 国产精品美女久久久久aⅴ国产馆| 午夜视频在线观看一区二区| 欧美色图激情小说| 色8久久人人97超碰香蕉987| 日韩午夜中文字幕| 一区二区三区精品在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎 | 国产成人午夜高潮毛片| 欧美精品v国产精品v日韩精品| 67194成人在线观看| 国产日韩影视精品| 久久国产尿小便嘘嘘| 国产传媒一区在线| 丝袜美腿一区二区三区| 91激情在线视频| 亚洲欧美综合色| 成人一区二区在线观看| 精品免费一区二区三区| 亚洲乱码国产乱码精品精小说 | 最好看的中文字幕久久| 日韩国产精品91| 久久久久久免费| 亚洲综合在线视频| 国产精品电影一区二区| 欧美一级欧美三级在线观看| 中文一区二区在线观看| 亚洲蜜桃精久久久久久久| 三级欧美在线一区| 亚洲欧洲成人自拍| 美国十次综合导航| 国产精品人妖ts系列视频| 欧美日韩国产小视频| 国产乱码精品1区2区3区| 久久久精品黄色| 99久久伊人网影院| 欧美日韩激情一区二区| 欧美一区二区三区在线观看| 亚洲三级久久久| av在线综合网| 欧美一区二区日韩| 中文av一区二区| 日韩精品一级中文字幕精品视频免费观看| 青青草国产精品97视觉盛宴| 成人av在线资源网站| 欧美日韩亚洲综合一区二区三区| 色哟哟国产精品| 精品一区二区三区在线视频| 欧美日韩国产经典色站一区二区三区| 国产又黄又大久久| 欧美一区二区播放| 激情欧美一区二区| 日韩一区二区三区四区| 日韩高清欧美激情| 精品一区二区在线观看| 国产成人一级电影| 日韩av电影一区| 2020国产成人综合网| 亚洲免费观看高清完整 | 精品国产一区久久| 国内精品自线一区二区三区视频| 精品一区二区在线播放| 亚洲图片另类小说| 欧美大片在线观看一区二区| 免费高清在线一区| 欧美性猛片xxxx免费看久爱| 91精品国产入口在线| 国产精品18久久久久久vr| 精品国产一区二区亚洲人成毛片| 综合精品久久久| 欧美一二三区精品| 欧美一级一区二区| 久久精品人人爽人人爽| 欧美日韩国产精品自在自线| 1024精品合集| 亚洲一区在线观看免费| 国产精品天干天干在线综合| 日韩二区三区四区| 久久精品国产第一区二区三区| 欧美成人bangbros| 国产毛片精品国产一区二区三区| 国产日韩欧美综合一区| 国产乱一区二区| 一区二区三区在线视频免费观看 |