中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python如何讀寫yaml文件

發布時間:2022-03-21 09:11:33 來源:億速云 閱讀:281 作者:小新 欄目:開發技術

這篇文章主要介紹Python如何讀寫yaml文件,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

1.關于yaml

yaml基本語法規則:

  • 大小寫敏感

  • 使用縮進表示層級關系

  • 縮進時不允許使用Tab鍵,只允許使用空格。

  • 縮進的空格數目不重要,只要相同層級的元素左側對齊即可

  • #表示注釋,從這個字符一直到行尾,都會被解析器忽略,這個和python的注釋一樣

2.yaml數據結構

YAML 支持的數據結構有三種:

  • 對象

鍵值對的集合,又稱為映射(mapping)/ 哈希(hashes) / 字典(dictionary)
對象的一組鍵值對,使用冒號結構表示。

  • 數組

一組按次序排列的值,又稱為序列(sequence) / 列表(list)
一組連詞線開頭的行,構成一個數組。

  • 純量(scalars

單個的、不可再分的值
包括字符串,布爾值,整數,浮點數,Null,時間,日期

3.yaml文件格式

auth.login:
  data:
    name: '18888888883'
    password: jnyj123456
  url: https://XXXX-api-XXXX.zje.com/auth/login
headers:
  Accept: '*/*'
  Accept-Encoding: gzip, deflate, br
  Accept-Language: zh-CN,zh;q=0.9
  Connection: keep-alive
  Content-Length: '46'
  Content-type: application/json
  Host: dexin-api-test.zje.com
  Origin: https://XXXX-spa-XXX.zje.com
  Referer: https://XXXX-spa-XXX.zje.com/
  Sec-Fetch-Dest: empty
  Sec-Fetch-Mode: cors
  Sec-Fetch-Site: same-site
  User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML,
    like Gecko) Chrome/98.0.4758.80 Safari/537.36
  authorization: Bearer
  sec-ch-ua: '" Not A;Brand";v="33"
  sec-ch-ua-mobile: ?0000
  sec-ch-ua-platform: macOSis

學習產出:

class OpenYaml(object):

    def __init__(self):
        self.file_path = os.path.join(route("/DataYaml/yaml.yaml"))  # 拼接讀取的文件路徑

    def open(self, *args):
        '''
           args[0]: 字典名稱
           args[1]: 字段值
           讀取文件
        '''
        try:
            if len(args) == 2:  # 根據傳值判斷執行內容
                with open(self.file_path, "r") as f:  # 讀取yaml
                    Json = f.read()  # 獲取yaml
                    Dict = yaml.safe_load(Json)[args[0]]  # 提取制定內容
                if args[1] in Dict.keys():  # 判斷key是否存在
                    logs.info(f"yaml文件,查找內容成功,內容:{Dict[args[1]]}")
                    return Dict[args[1]]
                else:
                    print(f"對應字段{args[1]}不存在...")
                    logs.info(f"對應字段{args[1]}不存在...")
            else:
                with open(self.file_path, "r") as f:
                    Json = f.read()
                    Dict = yaml.safe_load(Json)[args[0]]
                return Dict
        except Exception as e:
            print(f'讀取yaml文件,報錯:{e}')
            logs.info(f'讀取yaml文件,報錯:{e}')

    def Wri_file(self, *args):

        '''
        :param args: args[0] 接口字段、args[1] key、 args[2] value
        :return: None
        把字段寫入yaml
        '''
        try:
            with open(self.file_path, encoding="utf-8") as f:  # 讀取文件
                data = yaml.load(f.read(), Loader=yaml.FullLoader)  # 獲取讀取內容
            print(data[args[0]])
            if data is not None:  # 判斷讀取內容是否為空
                if str(data[args[0]][args[1]]) in str(data[args[0]]):  # 判斷name是否存在在dict
                    data[args[0]][args[1]] = args[2]
                    with open(self.file_path, 'w', encoding="utf-8") as f:  # 寫入
                        yaml.dump(data, stream=f, allow_unicode=True)
                else:
                    print("寫入文件的字段不存在!寫入失敗...")
            else:
                logs.info("寫入文件的返回值為空!不能寫入...")
        except Exception as y:
            logs.info(f"寫入文件失敗:{y}")


if __name__ == "__main__":
    OpenYaml().Wri_file("headers", "Content-Length", "22")
    OpenYaml().open("auth.login", "data")

以上是“Python如何讀寫yaml文件”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

彩票| 垣曲县| 崇信县| 郎溪县| 登封市| 海门市| 灯塔市| 波密县| 谷城县| 东山县| 阿荣旗| 甘洛县| 九龙城区| 阜宁县| 大姚县| 达拉特旗| 平昌县| 渭源县| 哈密市| 兴安盟| 巨野县| 商丘市| 凉山| 安化县| 仙桃市| 镇远县| 凤山县| 丹江口市| 阳新县| 岢岚县| 麻阳| 寻甸| 博白县| 义乌市| 桓仁| 青州市| 土默特右旗| 石景山区| 襄垣县| 兴安县| 集安市|