.json格式转为.yml格式
在跑ssd-6d代码时,出现了一个严重的问题,代码中用到的数据集里的文件都是.yml文件(eg:camera.yml)但是在下载的数据集(teijani)中也没有相应的.yml文件,数据及里提供的都是.json文件,我还下载了其他的数据集(linemod)去看是不是我自己下载的问题,结果发现也没有.yml文件,我去直接百度也没有找到相应的.yml文件,所以只能自己手动转。
百度了几个怎么把 .json格式转为.yml格式的方法后,还是最后使用了下面这种方法。将.json文件的内容,以字典的形式通过转换为字符再转换成yaml,输出到指定路径文件即可,程序如下:
import yaml,jsonif __name__ =='__main__': # d中为.json的内容d={"0": {"cam_K": [571.9737, 0.0, 319.5, 0.0, 571.0073, 239.5, 0.0, 0.0, 1.0], "depth_scale": 1.0},"1": {"cam_K": [571.9737, 0.0, 319.5, 0.0, 571.0073, 239.5, 0.0, 0.0, 1.0], "depth_scale": 1.0},"2": {"cam_K": [571.9737, 0.0, 319.5, 0.0, 571.0073, 239.5, 0.0, 0.0, 1.0], "depth_scale": 1.0},"3": {"cam_K": [571.9737, 0.0, 319.5, 0.0, 571.0073, 239.5, 0.0, 0.0, 1.0], "depth_scale": 1.0},"4": {"cam_K": [571.9737, 0.0, 319.5, 0.0, 571.0073, 239.5, 0.0, 0.0, 1.0], "depth_scale": 1.0},"5": {"cam_K": [571.9737, 0.0, 319.5, 0.0, 571.0073, 239.5, 0.0, 0.0, 1.0], "depth_scale": 1.0},"6": {"cam_K": [571.9737, 0.0, 319.5, 0.0, 571.0073, 239.5, 0.0, 0.0, 1.0], "depth_scale": 1.0},"7": {"cam_K": [571.9737, 0.0, 319.5, 0.0, 571.0073, 239.5, 0.0, 0.0, 1.0], "depth_scale": 1.0},"8": {"cam_K": [571.9737, 0.0, 319.5, 0.0, 571.0073, 239.5, 0.0, 0.0, 1.0], "depth_scale": 1.0},"9": {"cam_K": [571.9737, 0.0, 319.5, 0.0, 571.0073, 239.5, 0.0, 0.0, 1.0], "depth_scale": 1.0},"10": {"cam_K": [571.9737, 0.0, 319.5, 0.0, 571.0073, 239.5, 0.0, 0.0, 1.0], "depth_scale": 1.0}} dstr=json.dumps(d) # dict转成字符dyaml=yaml.load(dstr) # 将字符转成yamlfiley = 'C:/Users/shdn/Desktop/01scene_camera.yml'stream = open(filey, 'w')yaml.safe_dump(dyaml, stream, default_flow_style=False) #输出到文件中
这样就可以把.json文件转换为.yml文件
最后,再提供一个YAML、YML在线编辑(校验)器链接,我第一次自己手敲完就是在这里检查对不对的。