인프런 커뮤니티 질문&답변
33강 15분쯤 if분기점에서의 에러 문의 드립니다.
해결된 질문
작성
·
26
답변 3
0
0
안녕하세요.
워크플로우가 동작중 이미 오디오를 생성하고 중단된 후 다시 워크플로우를 구동했을때 기존의 생성된 오디오 인식 분이 제대로 처리 되지 않아 발생한 문제로 보입니다. 일단 보여주신 이미지에서의 오류는 기존에 생성된 오디오의 스크립트 데이터를 str 문자열 형태로 넘겨받아 코드에서 인덱싱 처리를 하는데 문자열 데이터를 숫자형태로 사용하려하다 발생한 문제입니다. 이는 아마도 기존의 데이터가 잘못 들어갔거나 혹은 데이터를 가져오는데 캐스팅(형변환)이 제대로 되지 않아 발생하는 문제로 보입니다.

위 이미지는 Get Reserved 노드 다음에 등장하는 Script 노드인데 여기서 에어테이블의 데이터를 받아올때 데이터를 어떤 형식으로 처리할지를 결정하는 내용이 있습니다. 위의 이미지를 큰 이미지로 보시면 제가 빨간 동그라미를 쳐 놓은 곳이 있는데,

조금 자세히 보면 audio_aligment 데이터와 output 데이터를 보면 실제 에어테이블에는 문자열 형태(Long Text)로 저장되있지만 여기서 이를 Object 형태로 받아서 처리하고 있습니다. 그래야만 JSON 형태를 유지할 수 있기 때문입니다.

그렇게 에이테이블에는 문자열 형태로 저장이 되어있지만 이를 불러와서 n8n 에서는 문자열 형태가 아닌 JSON 형태로 데이터를 사용할 수 있고 그래야 위 이미지에서 처럼 문제 없이 코드상에서 인덱싱 처리가 정상적으로 처리 됩니다.
제가 올려드린 이미지를 한번 비교해보면서 어떤 부분에 문제가 생겼는지 한번 체크해보시기 바랍니다..
0
안녕하세요, 인프런 AI 인턴입니다. stylebygio님.
현재 if 분기점에서 데이터의 존재 여부에 따라 처리 과정이 다르게 동작하며, 특히 존재할 경우 “TypeError: string indices must be integers, not ‘str’” 에러가 발생하고 있군요. 이 문제는 주로 JSON 데이터의 접근 방식에서 발생하는 오류입니다. 파이썬에서는 딕셔너리 형태의 데이터를 다룰 때 키를 사용하여 접근해야 하는데, 리스트 인덱스와 혼동하여 발생하는 경우가 많습니다.
해결 방법:
JSON 데이터 구조 확인 및 수정:
- 먼저, JSON 데이터의 구조를 확인하여 해당 키가 정확하게 정의되어 있는지 점검하세요. 데이터가 딕셔너리인지 리스트인지에 따라 접근 방식이 달라져야 합니다. 딕셔너리의 경우 문자열 키로 접근하고, 리스트의 경우 정수 인덱스를 사용해야 합니다.
- 먼저, JSON 데이터의 구조를 확인하여 해당 키가 정확하게 정의되어 있는지 점검하세요. 데이터가 딕셔너리인지 리스트인지에 따라 접근 방식이 달라져야 합니다. 딕셔너리의 경우 문자열 키로 접근하고, 리스트의 경우 정수 인덱스를 사용해야 합니다.
코드 로직 검토:
- 에러가 발생하는 파트의 코드를 검토하여, 문자열 키가 아닌 인덱스로 접근하려고 하는 부분을 수정해야 합니다. 예를 들어,
data['key']형태로 접근해야 하는데data[0]처럼 접근하지 않도록 합니다.
- 에러가 발생하는 파트의 코드를 검토하여, 문자열 키가 아닌 인덱스로 접근하려고 하는 부분을 수정해야 합니다. 예를 들어,
에러 발생 시 디버깅 방법:
- Python에 내장된
print또는logging모듈을 사용하여 데이터의 형태를 출력하고 정확한 포맷을 확인합니다. 이를 통해 데이터의 형태가 예상과 다른 부분을 발견할 수 있습니다.
- Python에 내장된
관련 노드 검토:
- 특히 ‘if’ 분기 이후의 노드들이 정확히 데이터를 받아올 수 있는지, 각 노드에서의 데이터 처리 로직이 올바른지 추가적으로 확인해 주세요.
- 특히 ‘if’ 분기 이후의 노드들이 정확히 데이터를 받아올 수 있는지, 각 노드에서의 데이터 처리 로직이 올바른지 추가적으로 확인해 주세요.
관련된 유사한 문제에 대한 해결 방법을 참고하시면 도움이 될 수 있습니다. 다음 링크를 확인해 보세요:
- AI 모델이 Python 코드를 생성하지 않는 문제 해결 관련 문의
- AI 에이전트의 데이터 흐름 문제 해결 사례
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.







해결되셨다니 다행입니다~!!