Я новичок в Python. Я пытаюсь создать скрипт для резервного копирования базы данных mysql. У меня есть файл config.ymlКак читать из файла yaml в Python
DB_HOST :'localhost'
DB_USER : 'root'
DB_USER_PASSWORD:'[email protected]$$w0rd'
DB_NAME : 'moodle_data'
BACKUP_PATH : '/var/lib/mysql/moodle_data'
Теперь мне нужно прочитать этот файл.
import yaml
config=yaml.load(open('config.yml'))
print (config.DB_NAME)
И вот ошибка.
file "conf.py", line 4, in <module>
print (config.DB_NAME)
AttributeError: 'str' object has no attribute 'DB_NAME'
У кого-нибудь есть идея, где я совершил ошибку?
Добро пожаловать на SO кстати. Вопрос может быть простым, форматирование хорошее, и все полезные элементы здесь. Наслаждайтесь своим пребыванием и не забывайте отмечать ответ, который был одобрен, когда ваш вопрос полностью ответил :) – spectras
Вы не должны использовать 'yaml.load()', поскольку он может быть небезопасным, и из вашего вопроса он выглядит так, как будто вы У меня есть опыт, чтобы судить правильно, если вы затронуты или нет (вместо этого используйте '.safeload()'). У вашего кода также возникает проблема, если чтение 'config.yml' вызывает ошибку (при разборе), в этом случае ваш файл может быть закрыт неправильно.Вы должны использовать оператор 'with' – Anthon