tingwu_new
All checks were successful
Deploy to Server / deploy (push) Successful in 18s

This commit is contained in:
jeremygan2021
2026-03-11 20:17:38 +08:00
parent 504db66b0b
commit 44d90e643f

View File

@@ -239,20 +239,23 @@ class TranscriptionTaskViewSet(viewsets.ModelViewSet):
if isinstance(transcription_data, dict): if isinstance(transcription_data, dict):
# 确定包含实际内容的字典源 # 确定包含实际内容的字典源
# 下载的 JSON 可能结构为 {"TaskId": "...", "Transcription": { "Sentences": [...] }}
# 或者 {"Sentences": [...]}
content_source = transcription_data content_source = transcription_data
# 如果存在嵌套的 Transcription 键,且它是字典,则优先使用它 # 关键修复:
if 'Transcription' in transcription_data and isinstance(transcription_data['Transcription'], dict): # 阿里云返回的 JSON 可能是 {"Transcription": {"Sentences": ...}} 也可能是 {"Sentences": ...}
content_source = transcription_data['Transcription'] # 之前的逻辑虽然尝试了 content_source = transcription_data['Transcription'],但如果 key 不存在会报错
logger.info(f"Using nested Transcription dict, keys: {content_source.keys()}") # 且如果是 {"TaskId": "...", "Transcription": {"Sentences": ...}} 这种结构,需要先剥离外层
# 尝试找到真正的 sentences/paragraphs 所在的字典
# 优先查找 'Transcription' 键,如果它对应的是字典,那么数据很可能在里面
if 'Transcription' in content_source and isinstance(content_source['Transcription'], dict):
content_source = content_source['Transcription']
logger.info(f"Drilled down to nested 'Transcription' key. Keys: {content_source.keys()}")
# 尝试提取 Sentences # 尝试提取 Sentences
sentences = content_source.get('Sentences', []) sentences = content_source.get('Sentences', [])
# 尝试提取 Paragraphs # 尝试提取 Paragraphs
# 注意Paragraphs 字段本身可能是一个列表,或者是一个包含 Paragraphs 键的字典
paragraphs_data = content_source.get('Paragraphs', []) paragraphs_data = content_source.get('Paragraphs', [])
if sentences: if sentences:
@@ -264,7 +267,8 @@ class TranscriptionTaskViewSet(viewsets.ModelViewSet):
if isinstance(paragraphs_data, dict): if isinstance(paragraphs_data, dict):
# 有时结构是 {"Paragraphs": {"Paragraphs": [...]}} 或者 {"Paragraphs": [...]} # 有时结构是 {"Paragraphs": {"Paragraphs": [...]}} 或者 {"Paragraphs": [...]}
para_list = paragraphs_data.get('Paragraphs', []) para_list = paragraphs_data.get('Paragraphs', [])
# 如果取出来是空的,但 paragraphs_data 本身有内容,可能结构不同,暂不处理深层嵌套 if not para_list and isinstance(paragraphs_data, list):
para_list = paragraphs_data
elif isinstance(paragraphs_data, list): elif isinstance(paragraphs_data, list):
para_list = paragraphs_data para_list = paragraphs_data