您好,登錄后才能下訂單哦!
這篇文章主要介紹Python如何讀寫yaml文件,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
yaml基本語法規則:
大小寫敏感
使用縮進表示層級關系
縮進時不允許使用Tab
鍵,只允許使用空格。
縮進的空格數目不重要,只要相同層級的元素左側對齊即可
#表示注釋,從這個字符一直到行尾,都會被解析器忽略,這個和python
的注釋一樣
YAML 支持的數據結構有三種:
對象
鍵值對的集合,又稱為映射(mapping)/ 哈希(hashes) / 字典(dictionary)
對象的一組鍵值對,使用冒號結構表示。
數組
一組按次序排列的值,又稱為序列(sequence) / 列表(list)
一組連詞線開頭的行,構成一個數組。
純量(scalars
)
單個的、不可再分的值
包括字符串,布爾值,整數,浮點數,Null,時間,日期
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文件”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。