Pythonic将'None'字符串转换为None的方式

bmp*_*ini 4 python yaml nonetype

假设我有以下yaml文件,第4行的值应为None.如何将字符串转换'None'None

CREDENTIALS:
  USERNAME: 'USERNAME'
  PASSWORD: 'PASSWORD'
LOG_FILE_PATH: None <----------
Run Code Online (Sandbox Code Playgroud)

我已经有了这个:

config = yaml.safe_load(open(config_path, "r"))
username, password, log_file_path = (config['CREDENTIALS']['USERNAME'],
                                     config['CREDENTIALS']['PASSWORD'],
                                     config['LOG_FILE_PATH'])
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一种pythonic方法来做到这一点,而不是简单地做:

if log_file_path == 'None':
  log_file_path = None
Run Code Online (Sandbox Code Playgroud)

Oin*_*Oin 7

NoneYAML文件中的值实际上不是犹太洁食YAML,因为YAML使用缺少值来表示None.所以如果你刚刚使用了正确的YAML,你的麻烦就会结束:

In [7]: yaml.load("""
   ...: CREDENTIALS:
   ...:   USERNAME: 'USERNAME'
   ...:   PASSWORD: 'PASSWORD'
   ...: LOG_FILE_PATH: 
   ...: """)
Out[7]: 
{'CREDENTIALS': {'PASSWORD': 'PASSWORD', 'USERNAME': 'USERNAME'},
 'LOG_FILE_PATH': None}
Run Code Online (Sandbox Code Playgroud)

注意它读缺乏的LOG_FILE_PATH作为None,而不是'None'.