日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

python 讀寫yaml

作者:殷殷殷先森丶 更新時間: 2022-04-19 編程語言

學習目標:

讀、寫yaml文件

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]}不存在...")
            elif len(args) > 2:
                print("傳參超過限時!傳入3個以下字段...")
            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")




原文鏈接:https://blog.csdn.net/weixin_44750991/article/details/123584148

欄目分類
最近更新