Closed coderQuan closed 3 years ago
收到,我们看一下哪里出问题了,并且为什么 ut 没有查出来。
排查了一下,原因是新版的yaml.load()需要指定Loader。 请 @halfapple 看看优化一下。 参考 pyyaml 官方文档
When LibYAML bindings are installed, you may use fast LibYAML-based parser and emitter as follows:
>>> yaml.load(stream, Loader=yaml.CLoader)
>>> yaml.dump(data, Dumper=yaml.CDumper)
If you don't trust the input stream, you should use:
>>> yaml.safe_load(stream)
param1 = {'0': 100}
print(param1['0']) # 100
param2 = '0123456'
print(param2[0]) # '0'
print(param2['0']) # TypeError: string indices must be integers
@coderQuan , 从目前的截屏信息看,
程序 105 行出现了警告信息:calling yaml.load() without Loader=... is deprecated (这个是由于高版本的 yaml 希望可以用速度更快 CLoader 来执行导致,我们这里会在下一个版本中优化)
程序 106 行首次出现了错误信息:string indices must be integers,在上一行发生警告的情况下,程序继续对 yml_data 做了读取操作,导致该 TypeError 发生,类似这里的 param2['0'] 的报错。我们会在下一个版本中优化,比如做一些安全检查。
你可以再检查下配置文件:server-project-template.yaml ,注意其中的空格。或者把配置文件贴出来,方便我们继续跟踪排查。
非常感谢 :-)
发现文件不存在也会报同样的错误。所以使用绝对路径就可以了。谢谢🙏