From b84ade2b656aefec4bb9d6959114a670198e0f43 Mon Sep 17 00:00:00 2001 From: yueliuli <1628111725@qq.com> Date: Thu, 23 Apr 2026 11:04:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Durl=E5=AD=97=E5=85=B8?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Qwen_app.py | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/Qwen_app.py b/Qwen_app.py index 70364a3..97a68f4 100644 --- a/Qwen_app.py +++ b/Qwen_app.py @@ -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: