假设我有以下yaml文件,第4行的值应为None
。如何将字符串'None'
转换为None
?
CREDENTIALS:
USERNAME: 'USERNAME'
PASSWORD: 'PASSWORD'
LOG_FILE_PATH: None <----------
我已经有了这个:
config = yaml.safe_load(open(config_path, "r"))
username, password, log_file_path = (config['CREDENTIALS']['USERNAME'],
config['CREDENTIALS']['PASSWORD'],
config['LOG_FILE_PATH'])
我想知道是否有一种pythonic方式来做到这一点,而不是简单地做:
if log_file_path == 'None':
log_file_path = None
答案 0 :(得分:7)
YAML文件中的None
值实际上不是犹太洁食YAML,因为YAML使用缺少值来表示无。所以,如果你刚刚使用了正确的YAML,你的麻烦就会结束:
In [7]: yaml.load("""
...: CREDENTIALS:
...: USERNAME: 'USERNAME'
...: PASSWORD: 'PASSWORD'
...: LOG_FILE_PATH:
...: """)
Out[7]:
{'CREDENTIALS': {'PASSWORD': 'PASSWORD', 'USERNAME': 'USERNAME'},
'LOG_FILE_PATH': None}
请注意如何将LOG_FILE_PATH
视为None
而不是'None'
。