更適合Pythoner的標記語言Yaml總結

      網(wǎng)友投稿 714 2025-04-05

      年輕人的狀態(tài)

      有多少人和這張圖一樣,每天清晨起床時,都后悔昨晚不該熬夜,決定以后晚上早點睡覺。結果到了晚上,照樣一副 欲上九天攬月,下四海捉鱉的精神面貌…

      pythonic的標記語言

      之前總結過一篇關于小數(shù)據(jù)存儲文件大比拼,當時著重介紹了json,因為它在各類編程語言的通用性較強。但今天,我想給大家介紹一款更加適合pythoner使用的語言Yaml。

      之所以說它更適合pythoner使用,是因為Yaml在很多方面都與python語言神似。

      讓我們再來看看Yaml的數(shù)據(jù)類型:

      更適合Pythoner的標記語言Yaml總結

      數(shù)組:一組按次序排列的值,又稱為序列(sequence) / 列表(list)

      對象:鍵值對的集合,又稱為映射(mapping)/ 哈希(hashes) / 字典(dictionary)

      純量(scalars):單個的、不可再分的值。字符串、布爾值、整數(shù)、浮點數(shù)、Null、時間、日期

      介紹了這么多,讓我們先來一起學習下Yaml的語法…

      Yaml語法學習

      下面我們針對Yaml的集中類型,進行逐一學習。需要注意的是,Yaml的結構標識符前無需添加空格,但標識符后需要添加一個空格,比如:

      數(shù)組

      之所以先介紹數(shù)組,是因為這個數(shù)據(jù)類型最簡單…

      對象

      純量

      我們需要明確純量的定義:單個的,不可拆分的值,這句話尤為重要。

      純量默認是無需添加引號的,但正如上面說的,當它可能出現(xiàn)被拆分的情況時,我們需要將它放在引號中。

      引號的使用類似Linux,單引號和雙引號都可以使用,雙引號不會對特殊字符轉義。

      下面集中列舉可能出現(xiàn)的情況:

      關于引用

      Yaml支持數(shù)據(jù)集之間的引用,&用來建立錨點(defaults),<<表示合并到當前數(shù)據(jù),*用來引用錨點。

      Python使用Yaml

      寫了這么多Yaml的知識,可Python怎么能與Yaml進行交互呢?使用Pyyaml。

      安裝: pip install pyyaml

      導入: import yaml

      至于操作,簡直不要太簡單… yaml只有兩個方法load、dump,而且使用完全和json模塊一樣。但真的如此嗎?顯然不是…

      Yaml安全告警

      由于Yaml數(shù)據(jù)存在安全隱患,在使用pyyaml進行l(wèi)oad時,會給出提示:

      Yaml文件特性

      由于Yaml文件可以使用三個短橫杠 --- 在一個文件中保存多個Yaml文檔內容,所以Yaml的方法額外多出了load_all dump_all兩種方法。但這里有個問題,如果使用load_all加載單個文檔,沒有問題,但如果使用load加載多個文檔,則會提示:

      所以,無腦的簡單粗暴,直接使用load_all與dump_all。當然,如果為了寫著練習,可以判斷文件后,單文件返回dict,如果多文件將迭代器轉化為list后進行返回…

      示例

      為了能讓大家更多的熟悉方法,我們就寫一個沒什么用的Yaml單文件與多文件解析器吧。

      先拷貝上面的示例,編寫兩個簡單的yaml文件:

      breeze_single.yaml

      breeze.yaml

      現(xiàn)在讓我們解析打印這兩個yaml,最終再回寫兩個new_xxx的yaml文件吧。

      可以看到,讀寫都沒有問題,但yaml將我們之前的引用,進行了重寫…但無傷大雅。

      The End

      本文來自“清風Python”歡迎關注

      C 語言 python

      版權聲明:本文內容由網(wǎng)絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網(wǎng)絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內刪除侵權內容。

      上一篇:甘特圖有幾種
      下一篇:excel2007表格怎么制作透視表(EXCEL2010中,數(shù)據(jù)透視表的制作方法?)
      相關文章
      亚洲中文精品久久久久久不卡| 中文字幕亚洲综合久久菠萝蜜| 亚洲国产婷婷香蕉久久久久久| 亚洲国产成+人+综合| 久久久久久久综合日本亚洲| 亚洲AV无码乱码在线观看性色扶| 亚洲成a∨人片在无码2023| 亚洲国产乱码最新视频| 777亚洲精品乱码久久久久久 | 亚洲男人av香蕉爽爽爽爽| 亚洲精品国产suv一区88| 亚洲一区在线免费观看| 亚洲综合在线成人一区| 久久久久亚洲精品日久生情| 亚洲成AV人片在线观看ww| 亚洲欧洲日产国码无码久久99 | 亚洲日韩乱码中文无码蜜桃| 亚洲Av永久无码精品三区在线| 亚洲人色婷婷成人网站在线观看| 亚洲熟妇av一区二区三区漫画| 亚洲视频在线一区二区| 国产成人综合亚洲| 国产精品亚洲精品爽爽| 亚洲AV无码专区在线厂| 老牛精品亚洲成av人片| 99亚洲乱人伦aⅴ精品| 伊人久久亚洲综合影院 | 亚洲福利一区二区精品秒拍| 亚洲精品中文字幕麻豆| 亚洲综合久久1区2区3区| 亚洲国产综合在线| 亚洲精品人成电影网| 亚洲制服丝袜一区二区三区| 亚洲午夜久久久久久尤物| 亚洲人成片在线观看| 久久夜色精品国产噜噜亚洲a| 亚洲色欲色欱wwW在线| 亚洲日本久久一区二区va| 亚洲AV成人精品一区二区三区| 亚洲综合激情五月色一区| 中文字幕在线日亚洲9|