This commit is contained in:
@@ -239,20 +239,23 @@ class TranscriptionTaskViewSet(viewsets.ModelViewSet):
|
||||
|
||||
if isinstance(transcription_data, dict):
|
||||
# 确定包含实际内容的字典源
|
||||
# 下载的 JSON 可能结构为 {"TaskId": "...", "Transcription": { "Sentences": [...] }}
|
||||
# 或者 {"Sentences": [...]}
|
||||
content_source = transcription_data
|
||||
|
||||
# 如果存在嵌套的 Transcription 键,且它是字典,则优先使用它
|
||||
if 'Transcription' in transcription_data and isinstance(transcription_data['Transcription'], dict):
|
||||
content_source = transcription_data['Transcription']
|
||||
logger.info(f"Using nested Transcription dict, keys: {content_source.keys()}")
|
||||
# 关键修复:
|
||||
# 阿里云返回的 JSON 可能是 {"Transcription": {"Sentences": ...}} 也可能是 {"Sentences": ...}
|
||||
# 之前的逻辑虽然尝试了 content_source = transcription_data['Transcription'],但如果 key 不存在会报错
|
||||
# 且如果是 {"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 = content_source.get('Sentences', [])
|
||||
|
||||
# 尝试提取 Paragraphs
|
||||
# 注意:Paragraphs 字段本身可能是一个列表,或者是一个包含 Paragraphs 键的字典
|
||||
paragraphs_data = content_source.get('Paragraphs', [])
|
||||
|
||||
if sentences:
|
||||
@@ -264,7 +267,8 @@ class TranscriptionTaskViewSet(viewsets.ModelViewSet):
|
||||
if isinstance(paragraphs_data, dict):
|
||||
# 有时结构是 {"Paragraphs": {"Paragraphs": [...]}} 或者 {"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):
|
||||
para_list = paragraphs_data
|
||||
|
||||
|
||||
Reference in New Issue
Block a user