【发布时间】:2017-06-17 21:30:11
【问题描述】:
我正在尝试编写一个脚本来备份 MySQL 数据库。我有一个config.yml 文件:
DB_HOST :'localhost'
DB_USER : 'root'
DB_USER_PASSWORD:'P@$$w0rd'
DB_NAME : 'moodle_data'
BACKUP_PATH : '/var/lib/mysql/moodle_data'
现在我需要阅读这个文件。到目前为止我的 Python 代码:
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 btw。问题可能很简单,格式很好,所有有用的元素都在这里。享受您的住宿,当您的问题得到完全回答时,不要忘记将答案标记为已批准:)
-
您不应该使用
yaml.load(),因为它可能不安全,而且从您的问题来看,您似乎没有经验来正确判断您是否受到影响(请改用.safeload())。如果读取config.yml引发错误(解析时),您的代码也会出现问题,在这种情况下,您的文件可能无法正确关闭。您应该使用with声明