精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

大多數程序員都不知道的6個YAML功能

開發 前端
YAML是一種常用于數據序列化的文件格式。有大量使用YAML文件進行配置的項目,例如Docker-compose,pre-commit,TravisCI,AWS Cloudformation,ESLint,Kubernetes,Ansible等。了解YAML的功能可以幫助您實現所有這些功能。

 [[384347]]

提升您的YAML知識以編寫更清晰的YAML文件

 

大多數程序員都不知道的6個YAML功能

 

YAML是一種常用于數據序列化的文件格式。有大量使用YAML文件進行配置的項目,例如Docker-compose,pre-commit,TravisCI,AWS Cloudformation,ESLint,Kubernetes,Ansible等。了解YAML的功能可以幫助您實現所有這些功能。

讓我們先介紹一下基礎知識:YAML是JSON(源)的超集。每個有效的JSON文件也是一個有效的YAML文件。這意味著您擁有所有期望的類型:整數,浮點數,字符串,布爾值,空值。以及序列和圖。根據您的編程語言,您可能說“ array”或“ list”而不是序列,而說“ dictionary”而不是map。

通常看起來像這樣:

 

  1. mysql: 
  2.   host: localhost 
  3.   user: root 
  4.   password: something 
  5. preprocessing_queue:  # Line comments are available! 
  6.   - name: preprocessing.scale_and_center 
  7.     width: 32 
  8.     height: 32 
  9.   - preprocessing.dot_reduction 
  10. use_anonymous: true 

 

等效符號

YAML有很多等效的編寫方法:

 

  1. list_by_dash: 
  2.   - foo 
  3.   - bar 
  4. list_by_square_bracets: [foo, bar] 
  5. map_by_indentation: 
  6.   foo: bar 
  7.   bar: baz 
  8. map_by_curly_braces: {foo: bar, bar: baz} 
  9. string_no_quotes: Monty Python 
  10. string_double_quotes: "Monty Python" 
  11. string_single_quotes: 'Monty Python' 
  12. bool_english: yes 
  13. bool_english_no: no 
  14. bool_python: True 
  15. bool_json: true 

 

這里有些警告:

 

  1. language: no # ISO 639-1 code for the Norwegian language 

此否被解釋為false。您需要輸入“ no”或“ no”。

通常,我建議像布爾值JSON一樣使用true和false,但是YAML支持11種寫布爾值的方法。如果您想對字符串使用引號,我也將像JSON一樣使用“。您仍然需要記住” no“,但是至少該文件看起來對YAML初學者更熟悉。

正如湯姆·里奇福德(Tom Ritchford)所指出的,還有更多類似的危險案例:

  • 013映射到11,因為前導零觸發八進制表示法
  • 4:30映射到270。Max Werner Kaul-Gothe和Niklas Baumstark告訴我,這被自動轉換為分鐘(或秒?),因為它被解釋為持續時間:4 * 60 + 30 = 270。有趣的是,這種模式仍然可以在1:1:1:1:1:1:1:1:4:30的情況下“工作”。

長字符串

 

  1. disclaimer: > 
  2.     Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
  3.     In nec urna pellentesque, imperdiet urna vitae, hendrerit 
  4.     odio. Donec porta aliquet laoreet. Sed viverra tempus fringilla. 

 

這等效于以下JSON(為便于閱讀,添加了換行符;請忽略它們):

{"disclaimer": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. In nec urna pellentesque, imperdiet urna vitae, hendrerit odio. Donec porta aliquet laoreet. Sed viverra tempus fringilla."}

多行字符串

 

  1. mail_signature: | 
  2.       Martin Thoma 
  3.       Tel. +49 123 4567 

 

這等效于JSON:

{"mail_signature": "Martin Thoma\nTel. +49 123 4567"}

請注意如何忽略前導空格。第一行(“ Martin Thoma”)確定忽略的前導空白的數量。

 

  1. email: &emailAddress "info@example.de" 
  2. id: *emailAddress 

 

這等效于以下JSON:

{"email": "info@example.de", "id": "info@example.de"}

&定義了一個變量emailAddress,其值為“ info@example.de。然后,*表示緊隨其后的是變量名。

您可以對映射執行相同的操作:

 

  1. foo: &default_settings 
  2.   db: 
  3.     host: localhost 
  4.     name: main_db 
  5.     port: 1337 
  6.   email: 
  7.     admin: admin@example.com 
  8. prod: *default_settings 
  9. dev: *default_settings 

 

這使:

 

  1. "dev": { "db": {"host"
  2.                   "localhost"
  3.                   "name""main_db"
  4.                   "port": 1337}, 
  5.            "email": {"admin""admin@example.com"}}, 
  6.   "foo": { "db": {"host""localhost"
  7.                   "name""main_db"
  8.                   "port": 1337}, 
  9.            "email": {"admin""admin@example.com"}}, 
  10.   "prod": { "db": {"host""localhost"
  11.                    "name""main_db"
  12.                    "port": 1337}, 
  13.             "email": {"admin""admin@example.com"}}} 

 

現在,您可能想在開發和生產設置中插入密碼。您可以使用合并鍵<<來做到這一點:

 

  1. foo: &default_settings 
  2.   db: 
  3.     host: localhost 
  4.     name: main_db 
  5.     port: 1337 
  6.   email: 
  7.     admin: admin@example.com 
  8. prod: 
  9.   <<: *default_settings 
  10.   app: 
  11.     port: 80 
  12. dev: *default_settings 

 

等效于以下JSON:

 

  1. "foo": { "db": {"host""localhost"
  2.                   "name""main_db"
  3.                   "port": 1337}, 
  4.            "email": {"admin""admin@example.com"}}, 
  5.   "prod": { "app": {"port": 80}, 
  6.             "db": {"host""localhost"
  7.                    "name""main_db"
  8.                    "port": 1337}, 
  9.             "email": {"admin""admin@example.com"}}, 
  10.   "dev": { "db": {"host""localhost"
  11.                   "name""main_db"
  12.                   "port": 1337}, 
  13.            "email": {"admin""admin@example.com"}},} 

 

類型轉化

雙重爆炸!在YAML中有特殊含義。它被稱為“第二標簽句柄”和!tag:yaml.org,2002 :(源)的簡寫。

您可以像這樣進行簡單的轉換:

 

  1. price: !!float 42 
  2. id: !!str 42 

 

或更復雜的內容,例如映射到直接在YAML中未指定的默認Python類型:

 

  1. tuple_example: !!python/tuple 
  2.   - 1337 
  3.   - 42 
  4. set_example: !!set {1337, 42} 
  5. date_example: !!timestamp 2020-12-31 

 

您可以這樣閱讀:

 

  1. import yaml 
  2. import pprint 
  3. with open("example.yaml"as fp: 
  4.     data = fp.read() 
  5. pp = pprint.PrettyPrinter(indent=4) 
  6. pased = yaml.unsafe_load(data) 
  7. pp.pprint(pased) 

 

你會得到這個:

 

  1. {   'date_example': datetime.date(2020, 12, 31), 
  2.     'set_example': {1337, 42}, 
  3.     'tuple_example': (1337, 42)} 

 

本示例使用特定于Python的標記!! python / tuple和一些標準的YAML標記。PyYaml有一個不錯的概述:

 

  1. ## Standard YAML tags 
  2. YAML               Python 3 
  3. !!null             None 
  4. !!bool             bool 
  5. !!int              int 
  6. !!float            float 
  7. !!binary           bytes 
  8. !!timestamp        datetime.datetime 
  9. !!omap, !!pairs    list of pairs 
  10. !!set              set 
  11. !!str              str 
  12. !!seq              list 
  13. !!map              dict 
  14. ## Python-specific tags 
  15. YAML               Python 3 
  16. !!python/none      None 
  17. !!python/bool      bool 
  18. !!python/bytes     bytes 
  19. !!python/str       str 
  20. !!python/unicode   str 
  21. !!python/int       int 
  22. !!python/long      int 
  23. !!python/float     float 
  24. !!python/complex   complex 
  25. !!python/list      list 
  26. !!python/tuple     tuple 
  27. !!python/dict      dict 
  28. ## Complex Python tags 
  29. !!python/name:module.name         module.name 
  30. !!python/module:package.module    package.module 
  31. !!python/object:module.cls        module.cls instance 
  32. !!python/object/new:module.cls    module.cls instance 
  33. !!python/object/apply:module.f    value of f(...) 

 

請注意,加載非標準標簽是不安全的!可以使用!! python / object / apply:module.f執行任意代碼。在PyYaml中,您需要yaml.unsafe_load才能使用它。因此,您可能不應該使用它!

一個YAML中的多個文檔

YAML中的三個破折號分別表示文檔:

 

  1. foo: bar 
  2. --- 
  3. fizz: buzz 

 

在Python中,您可以使用PyYAML像這樣加載它:

 

  1. import yaml 
  2. with open("example.yaml"as fp: 
  3.     data = fp.read() 
  4. parsed = yaml.safe_load_all(data)  # parsed is a generator 

 

如果將已分析的內容轉換為列表并打印出來,則會得到:

 

  1. [{'foo''bar'}, {'fizz''buzz'}] 

請注意,這不是寫列表的替代符號。是不同的文件。

靜態站點生成器Pelican使用它來區分元數據和內容。我還沒有看到其他任何使用此功能的應用程序。編輯:Clemens Tolboom提醒我,靜態網站生成器Jekyl也使用它。Chairat Onyaem(Par)指出oc進程也會生成此類YAML。謝謝你的評論!

下一步是什么?

有很多配置文件格式,例如TOML,INI,JSON,XML,dotenv,以及數據序列化格式,例如Pythons pickle,HDF5,Numpys NPZ,XML。如果您有興趣了解其中一個的更多信息,請告訴我!

責任編輯:華軒 來源: 今日頭條
相關推薦

2019-10-11 10:03:02

負載均衡器LVS虛擬服務器

2022-03-23 20:49:13

微信移動應用

2023-02-27 15:44:17

Java開發技巧

2019-07-12 15:28:41

緩存數據庫瀏覽器

2023-01-17 16:25:18

前端開發JSON

2024-07-17 14:12:07

開源工具開發管理模板

2018-05-08 15:30:46

程序員代碼框架

2021-02-08 22:32:43

程序員 靜態網頁

2024-02-01 09:34:06

HTML前端新特性

2021-09-28 15:31:07

Windows 11操作系統微軟

2018-09-20 17:05:01

前端程序員JavaScript

2019-10-25 22:17:25

開發者技能工具

2021-02-23 07:10:54

Redis數據庫緩存

2020-12-21 09:00:04

MySQL緩存SQL

2019-10-09 10:21:20

負載均衡架構開發

2025-08-27 08:16:07

2011-08-23 13:50:17

程序員

2022-08-08 11:13:35

API接口前端

2022-10-29 17:34:18

JVMJava

2020-12-21 09:44:53

MySQL查詢緩存數據庫
點贊
收藏

51CTO技術棧公眾號

欧美色爱综合网| 成人妖精视频yjsp地址| 在线视频免费一区二区| 天天操精品视频| 国产精品186在线观看在线播放| 99久久伊人精品| 国产免费一区二区三区在线观看 | 日本黄色三级大片| 91精彩视频在线观看| 国产精品一区二区黑丝| 日韩美女视频免费看| 69夜色精品国产69乱| 欧美电影在线观看免费| 欧美人与性动xxxx| 黄色免费福利视频| 国产在线一区二区视频| 26uuu国产电影一区二区| 91九色精品视频| 免费看污视频的网站| 黄色成人在线网站| 久久精品国产免费观看| 亚洲一区二区三区蜜桃| caoporn成人免费视频在线| 欧美在线免费视屏| jizzjizz国产精品喷水| 国产午夜精品久久久久免费视| 久久精品亚洲精品国产欧美kt∨| 99热在线国产| 97精品人妻一区二区三区在线| 性高湖久久久久久久久| 久久久久久久97| 99鲁鲁精品一区二区三区| 久久不见久久见中文字幕免费| 欧美不卡一区二区三区| 亚洲欧美日韩精品一区| 日韩成人动漫| 欧美日韩在线一区| 欧洲精品一区二区三区久久| 污片在线免费观看| 日韩毛片高清在线播放| 色噜噜狠狠色综合网| 可以在线观看的av网站| aaa亚洲精品| 国产欧美日韩视频一区二区三区| www.久久久久久| 国产精品一二三区在线| 91在线视频免费| 国产露脸无套对白在线播放| 久久精品国产一区二区三区免费看 | 欧美人动与zoxxxx乱| 成人在线激情网| 欧美电影免费观看| 色系网站成人免费| 88av.com| 精品亚洲a∨| 欧美乱熟臀69xxxxxx| 国产成人黄色网址| 国产人妖一区| 欧美疯狂性受xxxxx喷水图片| 日本国产一级片| 国产精品一级在线观看| 91精品国产免费| ass极品水嫩小美女ass| 影音先锋欧美激情| 亚洲国产精久久久久久| 在线不卡av电影| 成人激情电影在线| 久久精品国产久精国产思思| 日本a级片视频| 亚洲婷婷免费| 91豆花精品一区| 国产女主播喷水视频在线观看| 美女免费视频一区二区| 亚洲自拍偷拍一区| 天堂在线视频免费观看| 久久久777精品电影网影网 | 久久精品九九| 国产精品一区二区三区久久| 国产伦理一区二区| 不卡av在线免费观看| 欧美亚洲爱爱另类综合| 欧美69xxx| 亚洲成人av电影在线| 成人在线激情网| 日韩免费成人| 亚洲女人天堂网| 国产午夜精品理论片| 亚洲精品九九| 国产精品专区一| 婷婷久久久久久| 国产精品色哟哟| 国内少妇毛片视频| 影音成人av| 精品日韩一区二区三区免费视频| 国精产品一区二区三区| 亚洲国产精品久久久久蝴蝶传媒| 97在线观看视频| 一级黄色a视频| 不卡视频一二三| 尤物一区二区三区| 台湾佬中文娱乐网欧美电影| 欧美放荡的少妇| av无码一区二区三区| 欧美国产美女| 欧洲s码亚洲m码精品一区| 国产精品怡红院| 久久色在线视频| 激情成人开心网| 88xx成人网| 日韩精品丝袜在线| 免费在线观看一级片| 中文亚洲免费| 成人91视频| 日本a在线播放| 欧美亚洲一区三区| 欲求不满的岳中文字幕| 欧美激情1区| 国产精品自产拍高潮在线观看| 日本啊v在线| 亚洲成人av在线电影| 肉色超薄丝袜脚交| 残酷重口调教一区二区| 欧美孕妇毛茸茸xxxx| 好男人www在线视频| 亚洲日本在线观看| 亚洲这里只有精品| 精品久久视频| 国产aaa精品| 日色在线视频| 精品福利免费观看| 丰满岳乱妇一区二区| 欧美日韩一区二区高清| 91亚洲精品视频| 免费的黄网站在线观看| 精品视频在线免费| 日本精品在线观看视频| 久久久久久穴| 欧美大陆一区二区| 亚洲三级欧美| 日韩精品视频观看| 中文字幕视频网| 久久综合色婷婷| 免费高清在线观看免费| 色天下一区二区三区| 91po在线观看91精品国产性色| 人妻少妇精品无码专区| 亚洲国产欧美日韩另类综合| 苍井空张开腿实干12次| 欧美精品播放| 成人永久免费| 99色在线观看| 日韩精品黄色网| 天堂а√在线中文在线新版| 久久久国产精品午夜一区ai换脸| 97xxxxx| 精品国产91| 国产中文欧美精品| 18在线观看的| 亚洲精品www久久久| 国产精品视频久久久久久久| av色综合久久天堂av综合| 奇米精品一区二区三区| 九九视频精品全部免费播放| 国产精品黄视频| 黄色成年人视频在线观看| 日韩亚洲国产中文字幕欧美| 不卡的免费av| 久久久久久久久久美女| 亚洲成人福利在线观看| 亚洲成人一区| 久久精品日韩精品| 日韩高清在线| 九九热这里只有精品6| 日本人妻丰满熟妇久久久久久| 欧美日韩亚洲国产一区 | 亚洲视频一区二区在线| xxxx国产视频| 裸体一区二区| 国产麻豆电影在线观看| 亚洲一级大片| 91丨九色丨蝌蚪富婆spa| 亚洲精品成人久久久998| 国产成人免费av一区二区午夜 | 久久电影天堂| 欧美肥臀大乳一区二区免费视频| 特黄视频在线观看| 欧洲视频一区二区| 久久久久香蕉视频| 国产亚洲午夜高清国产拍精品| 在线能看的av网站| 日韩午夜一区| 亚洲欧洲精品在线观看| 国偷自产av一区二区三区| 99re热这里只有精品免费视频| 亚洲欧美综合在线精品| 国产精品久久久久7777| 亚洲欧美校园春色| 91久久在线观看| 午夜不卡影院| 久久成年人免费电影| 青青草在线视频免费观看| 欧美精品高清视频| 日韩精品在线免费视频| 亚洲人成在线观看一区二区| 人妻少妇一区二区| 国产91精品一区二区麻豆亚洲| 无码日韩人妻精品久久蜜桃| 亚洲电影在线| 女同性恋一区二区| 欧美手机视频| 久久精彩视频| 亚洲综合色婷婷在线观看| 国产精品美女999| 精品丝袜在线| 欧美国产一区二区三区| 香港伦理在线| 亚洲欧美综合v| 好吊色在线观看| 日韩欧美一级特黄在线播放| 国产精品露脸视频| 日韩欧美精品网址| 日本一区二区网站| 亚洲综合一区二区三区| 精品国产视频一区二区三区| 国产日韩精品一区二区三区 | 成人av在线一区二区| 亚洲精品mv在线观看| 青青草成人在线观看| 97在线播放视频| 一本一本久久| 久久久久久免费看| 欧美特黄一区| 国产 国语对白 露脸 | 成人免费观看cn| 韩日精品视频| 日韩黄色片在线| 欧美日韩国产欧| 国产一二三四五| 亚洲无中文字幕| 小泽玛利亚av在线| 欧美1级日本1级| 欧美激情亚洲天堂| 欧美日一区二区在线观看| 天天想你在线观看完整版电影免费| 91久久夜色精品国产按摩| 亚洲三区在线观看| 国产精品久久久久久久久久10秀 | a级片免费在线观看| 欧美国产日韩中文字幕在线| 男女在线观看视频| 久久久久免费视频| 97在线视频免费观看完整版| 97国产精品视频人人做人人爱| 91精品国产黑色瑜伽裤| 97成人精品区在线播放| 裤袜国产欧美精品一区| 国产精品成人在线| 日韩久久一区| 亚洲va久久久噜噜噜久久天堂| 日韩欧美久久| 加勒比在线一区二区三区观看| 希岛爱理av免费一区二区| 日韩欧美99| 在线成人激情| 欧美精品自拍视频| 久久婷婷一区| 亚洲精品手机在线观看| 国产福利一区在线| 亚洲黄色免费在线观看| 国产欧美日韩视频在线观看| 人妻无码一区二区三区免费| 亚洲欧美激情在线| 日本熟妇毛茸茸丰满| 色婷婷综合久久久中文一区二区 | 韩国精品在线观看| 久久精品aⅴ无码中文字字幕重口| 北条麻妃一区二区三区| 色哟哟精品观看| 亚洲人成网站色在线观看| 久久精品视频久久| 日本韩国欧美三级| av免费在线不卡| 日韩国产欧美区| 老司机福利在线视频| 97久久国产精品| 免费高清视频在线一区| www.久久久| 精品视频日韩| 国产aaa免费视频| 日韩不卡一二三区| 国产免费无码一区二区| 久久色.com| 精品少妇久久久| 欧美日韩国产另类一区| 欧美 日韩 国产 成人 在线| 在线观看国产精品日韩av| 青草青在线视频| 国产精品美乳一区二区免费 | 亚洲精品国产品国语在线| eeuss影院www在线观看| 国模视频一区二区三区| 91久久久久久白丝白浆欲热蜜臀| 成人av网站观看| 成人aaaa| 欧美女人性生活视频| 国产精品伊人色| 91视频免费看片| 狠狠色香婷婷久久亚洲精品| av中文字幕在线免费观看| 国产亚洲精品久久| 2001个疯子在线观看| 成人性教育视频在线观看| 国产成人精品三级高清久久91| 日韩黄色片在线| 国产精品亚洲第一区在线暖暖韩国| 欧美福利第一页| 欧美日韩国产一区二区三区| 午夜老司机福利| 久久五月情影视| 国产精品成人国产| 日韩aⅴ视频一区二区三区| 亚洲欧洲日本一区二区三区| 成人免费黄色av| 日韩毛片高清在线播放| 中文字幕 欧美激情| 精品视频久久久久久| 不卡av免费观看| 国产精品久久7| 欧美日韩91| 色诱av手机版| 亚洲另类中文字| 国产喷水吹潮视频www| 爽爽爽爽爽爽爽成人免费观看| 成人看片网页| 日本一区不卡| 日韩国产精品91| 日韩黄色中文字幕| 欧美私模裸体表演在线观看| 精品视频二区| 国产成人在线一区二区| 国产毛片一区二区三区 | 国产乱子轮精品视频| 日韩精品一区二区亚洲av性色| 欧美精品在线一区二区| 免费av在线| 亚洲xxxx18| 欧美三级乱码| 在线观看免费视频黄| 激情懂色av一区av二区av| 午夜一区在线观看| 欧洲精品毛片网站| 久久99蜜桃| 亚洲视频在线观看一区二区三区| 国产人成亚洲第一网站在线播放| 国产精品久久久久久久久夜色| 国产一区二区精品丝袜| 国产成人福利夜色影视| 日本久久高清视频| 国产精品一区二区不卡| www.av视频在线观看| 亚洲娇小xxxx欧美娇小| free欧美| dy888午夜| 成人免费视频视频| wwwwww国产| xxav国产精品美女主播| 亚洲va欧美va人人爽成人影院| 国产日韩av网站| 久久久久久久久久久久久久久99| 中文字幕视频二区| 欧美大胆在线视频| 羞羞色国产精品网站| 天天综合网日韩| 亚洲一区二区视频| 免费毛片在线| 91日韩在线播放| 亚洲欧美久久| 欧美黑人性猛交xxx| 亚洲精品国产电影| 福利精品一区| 国产免费一区二区视频| 久久久亚洲欧洲日产国码αv| 国产精品-色哟哟| 91黑丝高跟在线| 亚洲国产精品久久久天堂| 一本加勒比波多野结衣| 欧美日韩国产高清一区二区 | 国产精品欧美在线| 国内激情久久| 国产综合精品久久久久成人av| 日韩欧美aaaaaa| 亚洲伦乱视频| 国产精品国产对白熟妇| 国产三级精品视频| 丰满人妻一区二区三区四区53| 国产99视频在线观看| 亚洲视频狠狠| 免费中文字幕日韩| 亚洲欧美激情精品一区二区| 久久久精品区|