亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

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

簡單介紹Python的第三方庫yaml

熱門標(biāo)簽:高德地圖標(biāo)注是免費(fèi)的嗎 百度地圖標(biāo)注位置怎么修改 大連crm外呼系統(tǒng) 北京電信外呼系統(tǒng)靠譜嗎 無錫客服外呼系統(tǒng)一般多少錢 洪澤縣地圖標(biāo)注 梅州外呼業(yè)務(wù)系統(tǒng) 老人電話機(jī)器人 地圖標(biāo)注視頻廣告

一、yaml基本介紹

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

二、適用場景

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

三、基本的語法規(guī)則

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

四、YAML支持的三種數(shù)據(jù)結(jié)構(gòu)

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

4.1 對象

使用冒號代表,格式為 key: value。冒號后須加一個(gè)空格。
使用縮進(jìn)表示層級關(guān)系,如下:

key:
  child_key1: value1
  child-key2: value2

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

key: {child_key1: value1, child_key2: value2}

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

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

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

? 
  - complex_key1
  - complex_key2
: 
  - complex_value1
  - complex_value2

上述表示:對象的屬性是一個(gè)數(shù)組[complex_key1, complex_key2],其對應(yīng)的值也是一個(gè)數(shù)組[complex_value1, complex_value2]。

4.2 數(shù)組

使用一個(gè)短橫線 加一個(gè)空格代表一個(gè)數(shù)組項(xiàng):

hobby:
  - python
  - test

也可以這樣說:

-
  - python
  - test

可簡單理解為:[[python, test]]
再看一個(gè)相對復(fù)雜的例子:

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

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

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

4.2.1 對象和數(shù)組

可結(jié)合使用,形成復(fù)合結(jié)構(gòu)

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

4.3 純量

純量是最基本的、不可再分的值。YAML提供了多種常量結(jié)構(gòu):整數(shù)、浮點(diǎn)數(shù)、字符串、NULL、日期、布爾值、時(shí)間。

int: 
- 123
- 0b1010_0111_0100_1010_1110 # 二進(jìn)制表示
float:
- 3.14159
- 6.6e+5 # 可使用科學(xué)計(jì)數(shù)法
string:
- 'Hello world!' # 可使用雙引號或單引號包裹特殊字符,雙引號不會對特殊字符轉(zhuǎn)義。
- newline
  newline2 # 字符串可拆成多行,每一行會被轉(zhuǎn)化成一個(gè)空格
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 #時(shí)間使用ISO 8601格式,時(shí)間和日期之間使用T連接,最后使用+代表時(shí)區(qū)

4.4 還有一些特殊符號

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

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

上述例子定義兩個(gè)profile,一個(gè)development、一個(gè)production。

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

---
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 …和—配合使用,在一個(gè)配置文件中代表一個(gè)的結(jié)束

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

此例相當(dāng)于在一個(gè)yaml文件中連續(xù)寫了兩個(gè)yaml配置項(xiàng)。

4.4.3 YAML中使用!!做類型強(qiáng)行轉(zhuǎn)換

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

相當(dāng)于將數(shù)字和布爾類型強(qiáng)轉(zhuǎn)為字符串(允許轉(zhuǎn)換的類型還有很多)。

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

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

accomplistment的結(jié)果為:

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

status的結(jié)果為:

status=65 Home Runs
 0.278 Batting Average

4.4.5 引用。重復(fù)的內(nèi)容在YAML中可使用來完成錨點(diǎn)定義,用*來完成錨點(diǎn)引用

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

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

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

也可以這樣定義:

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

還可以用錨點(diǎn)定義更復(fù)雜的內(nèi)容:

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

hr相當(dāng)于引用default數(shù)組。不過,hr: *default須寫在同一行。

4.4.6 合并內(nèi)容。主要是和錨點(diǎn)配合使用,可將一個(gè)錨點(diǎn)內(nèi)容直接合并到一個(gè)對象中

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中,定義了四個(gè)錨點(diǎn),分別在sample中使用。

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

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

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

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

五、實(shí)戰(zhàn)

5.1 安裝yaml

yaml包名是 pyyaml,但導(dǎo)入是yaml。

5.2 Python使用yaml

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

在同一個(gè)文件夾下,編寫yaml文件,名為 cfg.yml,內(nèi)容如下:

nb:
  user: admin
  psw: 123456

編寫讀取yaml文件的.py文件,名為 readyml.py,內(nèi)容如下:

import yaml
import os

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

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

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

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

其中,最重要的兩個(gè)方法:

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

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

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

標(biāo)簽:吉林 洛陽 怒江 泉州 清遠(yuǎn) 安慶 長春 岳陽

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《簡單介紹Python的第三方庫yaml》,本文關(guān)鍵詞  簡單,介紹,Python,的,第三方,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《簡單介紹Python的第三方庫yaml》相關(guān)的同類信息!
  • 本頁收集關(guān)于簡單介紹Python的第三方庫yaml的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    久久99这里只有精品国产| 国产美女在线观看| 尤物视频网站在线| 天天色色色| 久久国产精品只做精品| 国产伦精品一区二区三区在线观看| 欧美a级大片| 国产麻豆精品hdvideoss| 精品在线免费播放| 日韩欧美一二三区| 美国一区二区三区| 欧美a级片视频| 欧美a免费| 欧美一区二区三区性| 国产成人啪精品| 欧美1区| 高清一级片| 精品国产一区二区三区国产馆| 国产网站免费| 亚欧成人毛片一区二区三区四区| 999精品在线| 国产a网| 九九免费精品视频| 午夜精品国产自在现线拍| 国产精品自拍亚洲| 亚洲第一视频在线播放| 欧美国产日韩一区二区三区| 亚洲精品影院久久久久久| 九九精品影院| 四虎影视库国产精品一区| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 欧美一级视频免费| 久久久久久久男人的天堂| 成人免费观看男女羞羞视频| 国产成人精品综合在线| 成人免费观看网欧美片| 久久国产影视免费精品| 国产福利免费视频| 国产一区二区精品久久91| 国产高清在线精品一区二区 | 一级毛片视频播放| 亚州视频一区二区| 久久精品大片| 国产福利免费观看| 青草国产在线观看| 在线观看成人网 | 国产视频在线免费观看| 高清一级片| 成人免费一级毛片在线播放视频| 亚州视频一区二区| 日韩专区在线播放| 精品久久久久久中文字幕一区| 日韩av东京社区男人的天堂| 国产极品精频在线观看| 精品国产一区二区三区久久久狼| 99久久精品国产免费| 九九国产| 超级乱淫黄漫画免费| 久久国产影视免费精品| 日韩免费在线观看视频| a级黄色毛片免费播放视频| 日韩欧美一二三区| 亚洲精品永久一区| 999精品在线| 九九精品在线播放| 国产麻豆精品hdvideoss| 国产麻豆精品高清在线播放| 亚洲第一视频在线播放| 国产精品1024永久免费视频| 日韩免费片| 美国一区二区三区| 青青久热| 一级片片| 日本在线不卡视频| 国产成人精品综合| 国产精品自拍一区| 青青久热| 国产91视频网| 欧美18性精品| 久久精品免视看国产明星| 色综合久久天天综合绕观看| 国产伦精品一区二区三区无广告| 国产成人欧美一区二区三区的| 免费国产在线观看| 一本伊大人香蕉高清在线观看| 99色视频在线| 四虎影视久久| 欧美激情一区二区三区视频高清| 四虎论坛| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 色综合久久天天综合观看| 韩国妈妈的朋友在线播放| 国产美女在线观看| 四虎影视精品永久免费网站| 久久福利影视| 国产麻豆精品免费视频| 高清一级片| 亚洲精品影院| 一级女人毛片人一女人| 天天色色网| 99久久精品国产免费| 成人免费网站久久久| 国产视频网站在线观看| 成人高清免费| 国产麻豆精品视频| 国产原创视频在线| 国产视频久久久| 国产极品精频在线观看| 国产视频久久久久| 久久久久久久久综合影视网| 国产极品精频在线观看| 九九免费精品视频| 欧美另类videosbestsex| 精品国产一区二区三区久久久蜜臀| 99久久精品国产高清一区二区| 日韩一级黄色片| 韩国毛片免费大片| 色综合久久手机在线| 精品国产一区二区三区久久久狼 | 国产一区二区精品| 一级女性全黄久久生活片| 青青青草视频在线观看| 精品视频免费观看| 国产不卡在线播放| 一级女性全黄久久生活片| 99久久精品国产高清一区二区| 成人av在线播放| 黄色免费三级| 亚洲不卡一区二区三区在线 | 日韩专区在线播放| 欧美18性精品| 日韩字幕在线| 欧美1区| 精品在线免费播放| a级黄色毛片免费播放视频| 可以免费看污视频的网站| 四虎影视库| 欧美大片aaaa一级毛片| 日本免费看视频| 尤物视频网站在线观看| 成人免费观看网欧美片| 麻豆网站在线免费观看| 久久99这里只有精品国产| 日韩女人做爰大片| 四虎影视久久| 欧美1区| 国产视频一区在线| 国产亚洲男人的天堂在线观看| 亚欧成人乱码一区二区| 国产一区二区高清视频| 午夜激情视频在线观看| 成人免费观看网欧美片| 午夜欧美福利| 亚州视频一区二区| 沈樵在线观看福利| 欧美一级视频免费观看| 国产不卡在线观看| 日韩中文字幕在线播放| 日韩一级精品视频在线观看| 国产视频一区二区在线观看| 一级女性大黄生活片免费| 日韩av东京社区男人的天堂| 国产网站免费在线观看| 久久99爰这里有精品国产| 黄视频网站在线免费观看| 国产麻豆精品hdvideoss| 麻豆午夜视频| 日韩欧美一及在线播放| 亚洲精品影院久久久久久| 精品在线免费播放| 91麻豆国产| 色综合久久天天综线观看| 亚洲精品影院| 999久久66久6只有精品| 成人免费观看男女羞羞视频| 亚洲精品影院一区二区| 成人免费观看网欧美片| 九九精品久久| 国产伦久视频免费观看 视频 | 精品毛片视频| 精品国产一区二区三区久久久蜜臀| 国产精品自拍亚洲| 国产一级生活片| 国产a视频| 91麻豆国产| 久草免费在线视频| 二级特黄绝大片免费视频大片| 成人免费高清视频| 国产一区二区精品久| 四虎久久精品国产| 精品国产一区二区三区久久久狼| 国产美女在线观看| 二级特黄绝大片免费视频大片| 九九干| 国产91视频网| 国产一级强片在线观看| 久久精品免视看国产明星| 成人av在线播放| 久久国产精品自线拍免费| 你懂的在线观看视频|