修复url字典错误

This commit is contained in:
yueliuli 2026-04-23 11:04:12 +08:00
parent 67b78ec361
commit b84ade2b65
1 changed files with 20 additions and 7 deletions

View File

@ -332,19 +332,30 @@ def get_vid_dict(vid_dir: str, obj_dict: dict, video_url_file: str, use_url_cach
if os.path.exists(video_url_file):
try:
with open(video_url_file, "r", encoding="utf-8") as f:
vid_dict = json.load(f)
loaded_data = json.load(f)
# 验证数据结构:确保值是字典且包含必要键
for track_id, value in loaded_data.items():
if isinstance(value, dict) and "vid_path" in value and "vid_url" in value:
vid_dict[track_id] = value
else:
print(f"跳过无效的视频信息: {track_id} -> {value}")
except Exception as e:
print(f"读取URL文件失败: {e}")
# 初始化未存在的track_id
for track_id in obj_dict.keys():
if track_id in vid_dict:
continue
vid_path = f"{vid_dir}/obj_{int(track_id):03d}.mp4"
vid_dict[track_id] = {"vid_path": vid_path, "vid_url": None}
try:
vid_path = f"{vid_dir}/obj_{int(track_id):03d}.mp4"
vid_dict[track_id] = {"vid_path": vid_path, "vid_url": None}
except (ValueError, TypeError):
print(f"无效的track_id: {track_id},跳过")
# 找到未上传的视频
unuploaded_vids = []
for track_id, vid_info in vid_dict.items():
if vid_info["vid_url"] is None:
if isinstance(vid_info, dict) and vid_info.get("vid_url") is None:
unuploaded_vids.append(vid_info["vid_path"])
# 上传未上传的视频并获取 URL
@ -355,9 +366,11 @@ def get_vid_dict(vid_dir: str, obj_dict: dict, video_url_file: str, use_url_cach
# 更新视频URL
for track_id, vid_info in vid_dict.items():
if vid_info["vid_url"] is None:
idx = unuploaded_vids.index(vid_info["vid_path"])
vid_info["vid_url"] = uploaded_urls[idx]
if isinstance(vid_info, dict) and vid_info.get("vid_url") is None:
if vid_info["vid_path"] in unuploaded_vids:
idx = unuploaded_vids.index(vid_info["vid_path"])
if idx < len(uploaded_urls):
vid_info["vid_url"] = uploaded_urls[idx]
# 保存字典为 JSON 文件
with open(video_url_file, "w", encoding="utf-8") as f: