最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python處理yaml文件的操作方法

 更新時(shí)間:2023年11月01日 09:44:49   作者:阿鈴  
yaml文件是一種數(shù)據(jù)序列化語(yǔ)言,廣泛用于配置文件、日志文件、等,本文給大家介紹python處理yaml文件的操作方法,感興趣的朋友跟隨小編一起看看吧

yaml文件簡(jiǎn)介

yaml 文件是一種數(shù)據(jù)序列化語(yǔ)言,廣泛用于配置文件、日志文件、等

語(yǔ)言特點(diǎn)

  • 大小寫敏感
  • 使用縮進(jìn)表示層級(jí)關(guān)系
  • 縮進(jìn)時(shí)不允許使用Tab鍵,只允許使用空格。
  • 縮進(jìn)的空格數(shù)目不重要,只要相同層級(jí)的元素左側(cè)對(duì)齊即可

yaml數(shù)據(jù)結(jié)構(gòu)

yaml語(yǔ)言包含三種數(shù)據(jù)結(jié)構(gòu):

  • mappings (hashes/dictionaries) 對(duì)象
  • sequences (arrays/lists) 數(shù)組
  • scalars (strings/numbers) 純量

以下是標(biāo)記語(yǔ)言和轉(zhuǎn)化為python 對(duì)象后的輸出

數(shù)組

數(shù)組以 - 和 空格 來(lái)標(biāo)記

- name1
- name2
- name3

output: 轉(zhuǎn)為list

['name1', 'name2', 'name3']

對(duì)象

對(duì)象用: 和 空格 標(biāo)識(shí)

name: Ling
email: ww.aa.com

output: 轉(zhuǎn)為dict

{'name': 'Ling', 'email': 'ww.aa.com'}

數(shù)據(jù)對(duì)象混合

對(duì)象value為數(shù)組/ 對(duì)象

american:
- Boston Red Sox
- Detroit Tigers
- New York Yankees
national:
- New York Mets
- Chicago Cubs
- Atlanta Braves:
  - A
  - B

多維數(shù)組

-
  - Boston Red Sox
  - Detroit Tigers
  - New York Yankees
-
  - New York Mets
  - Chicago Cubs
  - Atlanta Braves

純量

  • 字符串
  • 布爾值
  • 整數(shù)
  • 浮點(diǎn)數(shù)
  • Null
  • 時(shí)間
  • 日期
boolean:
    - TRUE  #true,True,TRUE都可以
    - FALSE  #false,F(xiàn)alse, FALSE都可以
float:
    - 3.14
    - 6.8523015e+5  #可以使用科學(xué)計(jì)數(shù)法
int:
    - 123
    - 0b1010_0111_0100_1010_1110    #二進(jìn)制表示
kongzhi:
    parent: ~  #使用~表示null
    class: null   #null也表示null
string:
    - 哈哈
    - 'Hello world: from this way'  #如果字符串之中包含空格或特殊字符,需要放在引號(hào)之中,可以使用雙引號(hào)或者單引號(hào)包裹特殊字符
    - 寫多行   #換行服會(huì)轉(zhuǎn)義成空格
date:
    - 2018-02-17    #日期必須使用ISO 8601格式,即yyyy-MM-dd
    - 2018-02-17 12:23:34  #標(biāo)準(zhǔn)帶時(shí)間格式

output如下:

{'boolean': [True, False], 'float': [3.14, 685230.15], 'int': [123, 685230], 'kongzhi': {'parent': None, 'class': None}, 'string': ['哈哈', 'Hello world: from this way', '寫多行'], 'date1': [datetime.date(2018, 2, 17), datetime.datetime(2018, 2, 17, 12, 23, 34)]}

注意上述date轉(zhuǎn)換成python 字典后,轉(zhuǎn)成json會(huì)報(bào)錯(cuò)

xx={'date1': [datetime.date(2018, 2, 17), datetime.datetime(2018, 2, 17, 12, 23, 34)]}
print(json.dumps(xx, indent=4))
# 運(yùn)行錯(cuò)誤如下:
TypeError: Object of type date is not JSON serializable

注釋

注釋以“#” 標(biāo)識(shí)

- name1  #this is first name
- name2
- name3

錨點(diǎn)和引用

& 用來(lái)建立錨點(diǎn),<< 表示合并到當(dāng)前數(shù)據(jù),* 用來(lái)引用錨點(diǎn)
舉例如下:

defaults: &defaults
  adapter:  postgres
  host:     localhost
development:
  database: myapp_development
  <<: *defaults
test:
  database: myapp_test
  <<: *defaults

python操作yaml文件

安裝工具包

pip install pyyaml

pyyaml官網(wǎng)文檔

https://pyyaml.org/wiki/PyYAMLDocumentation

常用方法

這里的常用方法和 json 操作類似

將yml文件轉(zhuǎn)換成 python中數(shù)據(jù)

由于 yaml.load() 方法不安全,建議使用yaml.safe_load() 函數(shù)

import yaml
# 直接打開(kāi)文件,獲取文件內(nèi)容,轉(zhuǎn)換成python dict 數(shù)據(jù)格式
# 這里要考慮關(guān)閉文件
file_data = open('./config/login_data.yaml')
data = yaml.load(file_data, yaml.SafeLoader)   # 相當(dāng)于 safe_load 方法
print(data)
file1.close()
# 使用with 方法,可以不用手動(dòng)關(guān)閉文件
# 這里設(shè)置encoding 是為了yaml 文件有中文時(shí)進(jìn)行處理
with open('./config/login_data.yaml', encoding='utf-8') as f:
    elem_locators = yaml.safe_load(f)  # 傳入的是 yaml字符串或者文件句柄
print(elem_locators)

將python數(shù)據(jù)轉(zhuǎn)換成 寫入yml 文件

使用 yaml.dump 函數(shù),暫時(shí)不在此介紹

清空yaml文件

trucate()

yaml 常用的方法就是 讀取、寫入 和 清空

讀取文件的內(nèi)容
可以加多個(gè)fixtrue
可以加多個(gè)斷言

注意點(diǎn)

yaml中有中文

如yaml中有中文,需要使用 字符串.encode('utf-8')或打開(kāi)文件時(shí)指定encoding='utf-8'

參考鏈接

yaml語(yǔ)言介紹

python 操作yaml

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

相關(guān)文章

  • Python中encode和encoding的區(qū)別小結(jié)

    Python中encode和encoding的區(qū)別小結(jié)

    encode和encoding在Python中雖然都與字符編碼相關(guān),但它們的角色和用途是不同的,本文主要介紹了Python中encode和encoding的區(qū)別小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • Matplotlib繪圖基礎(chǔ)之圖例詳解

    Matplotlib繪圖基礎(chǔ)之圖例詳解

    Matplotlib?中的圖例是幫助觀察者理解圖像數(shù)據(jù)的重要工具,通常包含在圖像中,用于解釋不同的顏色、形狀、標(biāo)簽和其他元素,下面我們就來(lái)看看在繪圖時(shí)如何靈活運(yùn)用圖例吧
    2023-08-08
  • Python+PyQt5開(kāi)發(fā)一個(gè)全屏水印批量添加工具

    Python+PyQt5開(kāi)發(fā)一個(gè)全屏水印批量添加工具

    本文詳細(xì)介紹了如何使用Python和PyQt5開(kāi)發(fā)一個(gè)功能強(qiáng)大的全屏水印批量添加工具,支持PDF和多種圖片格式,具備完整的GUI界面和批量處理能力,希望對(duì)大家有所幫助
    2025-09-09
  • python新手學(xué)習(xí)使用庫(kù)

    python新手學(xué)習(xí)使用庫(kù)

    在本篇文章里小編給大家整理的一篇關(guān)于python新手學(xué)習(xí)使用庫(kù)的相關(guān)方法和知識(shí)點(diǎn),需要的朋友們參考下。
    2020-06-06
  • pandas中DataFrame新增行及global變量的使用方式

    pandas中DataFrame新增行及global變量的使用方式

    這篇文章主要介紹了pandas中DataFrame新增行及global變量的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 用python實(shí)現(xiàn)前向分詞最大匹配算法的示例代碼

    用python實(shí)現(xiàn)前向分詞最大匹配算法的示例代碼

    這篇文章主要介紹了用python實(shí)現(xiàn)前向分詞最大匹配算法的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 詳解pandas使用drop_duplicates去除DataFrame重復(fù)項(xiàng)參數(shù)

    詳解pandas使用drop_duplicates去除DataFrame重復(fù)項(xiàng)參數(shù)

    這篇文章主要介紹了詳解pandas使用drop_duplicates去除DataFrame重復(fù)項(xiàng)參數(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 使用Python編寫錄屏錄音工具

    使用Python編寫錄屏錄音工具

    這篇文章主要為大家詳細(xì)介紹了如何使用Python編寫一個(gè)錄屏錄音工具,工具界面十分簡(jiǎn)單,默認(rèn)是全屏錄屏錄音,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12
  • 利用Python實(shí)現(xiàn)自動(dòng)生成小學(xué)生計(jì)算題

    利用Python實(shí)現(xiàn)自動(dòng)生成小學(xué)生計(jì)算題

    過(guò)年期間發(fā)現(xiàn)小外甥已經(jīng)上小學(xué)了,我姐說(shuō)老師今天給他們布置了寒假作業(yè):每天堅(jiān)持做乘法和加減法混合運(yùn)算。這我必須幫幫忙,用Python寫了一段自動(dòng)生成小學(xué)生計(jì)算題的代碼,希望外甥不要太感謝我
    2023-02-02
  • Python實(shí)現(xiàn)小黑屋游戲的完整實(shí)例

    Python實(shí)現(xiàn)小黑屋游戲的完整實(shí)例

    這篇文章主要給大家介紹了關(guān)于Python實(shí)現(xiàn)小黑屋游戲的完整實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01

最新評(píng)論

琼中| 凤凰县| 开封市| 宜川县| 张家界市| 玛纳斯县| 青海省| 中超| 汤阴县| 正阳县| 习水县| 英德市| 临沧市| 丹棱县| 桂东县| 龙游县| 沙湾县| 泌阳县| 苏州市| 天津市| 余庆县| 故城县| 清河县| 西安市| 如东县| 新丰县| 综艺| 日照市| 滦平县| 开平市| 东乡族自治县| 临泉县| 屏山县| 静宁县| 涡阳县| 化州市| 澄江县| 曲麻莱县| 当阳市| 凤阳县| 乐安县|