解決:YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe.


使用PyYAML解析yaml文件時,報錯:

fs = open(r"E:\virtual_workshop\APP_AutoTest\caps\caps.yml")
caps_data = yaml.load(fs)
print(caps_data)


#運行結果
D:\program\Python37\python.exe E:/virtual_workshop/APP_AutoTest/common/base_driver.py
[{'platformName': 'Android', 'platformVersion': '5.1.1', 'deviceName': 'Android Emulato', 'appPackage': 'com.xxzb.fenwoo', 'appActivity': 'com.xxzb.fenwoo.activity.addition.WelcomeActivity'}, {'server_ip': '127.0.0.1', 'server_port': 4723}]
E:/virtual_workshop/APP_AutoTest/common/base_driver.py:8: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
  caps_data = yaml.load(fs)

Process finished with exit code 0

原因:YAML 5.1版本后棄用了yaml.load(file)這個用法,因為覺得很不安全,5.1版本之后就修改了需要指定Loader,通過默認加載​​器(FullLoader)禁止執行任意函數,該load函數也變得更加安全

解決辦法:

caps_data = yaml.load(fs, Loader=yaml.FullLoader)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM