循环中嵌套条件语句,print的内容不显示
代码源码:
import os
import cv2
import json
json_file='/home/haida_niejie/work/bingxiang/mmdetection-master/WBF/train_coco60.json'
with open(json_file,'r') as f:
ann=json.load(f)
img_file='/home/haida_niejie/work/bingxiang/mmdetection-master/WBF/patch_train/'
save_dir='/home/haida_niejie/work/bingxiang/mmdetection-master/WBF/data_processed/patch_img/'
for file in os.listdir(img_file):
id_name,title=os.path.splitext(file)
for a in ann['annotations']:
if a['id']==id_name:
print(1)
问题描述:运行代码之后,if条件语句中的打印操作无法执行。debug过程循环是正常循环的。
**问题解决:**经过仔细排查发现if条件语句中,条件两端的变量类型不相同
具体展现为:
type(a[id])为int-----#a[id]=32458
type(id_name)为str----#id_name='32458'
将条件两边变量类型统一,问题解决:
import os
import cv2
import json
json_file='/home/haida_niejie/work/bingxiang/mmdetection-master/WBF/train_coco60.json'
with open(json_file,'r') as f:
ann=json.load(f)
img_file='/home/haida_niejie/work/bingxiang/mmdetection-master/WBF/patch_train/'
save_dir='/home/haida_niejie/work/bingxiang/mmdetection-master/WBF/data_processed/patch_img/'
for file in os.listdir(img_file):
id_name,title=os.path.splitext(file)
for a in ann['annotations']:
if a['id']==int(id_name):
print(1)
raise
疑问:
单独输出:
print(int(1)==str(1))
#False
为什么循环还能执行,希望有大神能够指导一下小白