YML文件打印错误的次数
Times from YML file printing wrong
我有一个 .yml
文件,它是我的配置。在这个文件中,我定义了两次,如下所示:
my-times:
earliest_time: 17:00 #PM
latest_time: 19:00 #PM
我的代码如下所示:
conf: object = yaml.safe_load(open('myconfig.yml'))
earliest_time = str(conf['my-times']['earliest_time'])
latest_time = str(conf['my-times']['latest_time'])
print(earliest_time)
print(latest_time)
但是当我在这个时间 window 并且我想在 if
语句中打印或使用它们时,我得到了以下输出:
0:00
1080
如何在上面的代码中正常打印第二次,就像在.yml
文件中一样?
yaml 加载程序将 17:00 解释为时间,将 returns 值解释为表示时间(以分钟为单位)的整数。因此 17:00 将是 1020 而 19:00 将是 1140
编辑:代码示例以显示如何以原始形式表示获取的值:
import yaml
with open('myconfig.yml') as yml:
conf = yaml.safe_load(yml)
for k in ['earliest_time', 'latest_time']:
e = conf['my-times'][k]
h, m = divmod(e, 60)
print(f'{h:02d}:{m:02d}')
输出:
17:00
19:00
您可以更改您的 yaml 文件:
my-times:
earliest_time: "17:00" #PM
latest_time: "19:00" #PM
这告诉 YAML 它是一个文字字符串,并禁止将其视为数值的尝试。
查看此 post 了解更多信息:
我有一个 .yml
文件,它是我的配置。在这个文件中,我定义了两次,如下所示:
my-times:
earliest_time: 17:00 #PM
latest_time: 19:00 #PM
我的代码如下所示:
conf: object = yaml.safe_load(open('myconfig.yml'))
earliest_time = str(conf['my-times']['earliest_time'])
latest_time = str(conf['my-times']['latest_time'])
print(earliest_time)
print(latest_time)
但是当我在这个时间 window 并且我想在 if
语句中打印或使用它们时,我得到了以下输出:
0:00
1080
如何在上面的代码中正常打印第二次,就像在.yml
文件中一样?
yaml 加载程序将 17:00 解释为时间,将 returns 值解释为表示时间(以分钟为单位)的整数。因此 17:00 将是 1020 而 19:00 将是 1140
编辑:代码示例以显示如何以原始形式表示获取的值:
import yaml
with open('myconfig.yml') as yml:
conf = yaml.safe_load(yml)
for k in ['earliest_time', 'latest_time']:
e = conf['my-times'][k]
h, m = divmod(e, 60)
print(f'{h:02d}:{m:02d}')
输出:
17:00
19:00
您可以更改您的 yaml 文件:
my-times:
earliest_time: "17:00" #PM
latest_time: "19:00" #PM
这告诉 YAML 它是一个文字字符串,并禁止将其视为数值的尝试。
查看此 post 了解更多信息: