This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user