Разница между yaml.load и yaml.SafeLoader в PyYAML - PullRequest
2 голосов
/ 17 октября 2019

Python newbie здесь.

Я установил PyYAML и попытался использовать этот бит кода, который я нашел измененным в сети, для анализа файла YAML, который мне дали.

import yaml

if __name__ == '__main__':
    try:
        foo = open("foo.txt","a+")
    except:
        print("Error in opening file.")

stream = open("s.yaml", 'r')
dictionary = yaml.load(stream)
#dictionary = yaml.SafeLoader(stream)
for key, value in dictionary.items():

    foo.write(key + " : " + str(value)+"\n")

Затем я увиделв выводе, что yaml.load устарел из-за проблем безопасности. Поэтому я попытался запустить его с помощью SafeLoader. Но это дало мне ошибку

Traceback (most recent call last):
  File ".\parseYAML.py", line 11, in <module>
    for key, value in dictionary.items():
AttributeError: 'SafeLoader' object has no attribute 'items'

Я не могу опубликовать фактический файл данных здесь по деловым причинам, но есть ли у кого-нибудь какие-либо советы о том, как я могу заставить SafeLoader работать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...