본문 바로가기

IT/DB

MYSQL 데이터 import 오류 TypeError: sequence item 0: expected string, NoneType foundERROR: Import data file: sequence item 0: expected string, NoneType foundFailed

728x90
반응형

 

 

 

해당 오류는 MySQL Workbench에서 데이터를 가져올 때 발생한 문제이며,

 

원인은 NoneType 값이 str 타입으로 변환될 것으로 예상되었으나, 변환되지 못한 것 때문입니다.

 


 

🔍 오류 원인 분석

 

  1. 테이블 또는 컬럼 정보가 올바르게 설정되지 않음
    • self._table_w_prefix 또는 dest_col_order에 None 값이 포함되었을 가능성이 있음
    • dest_col_order에 None이 포함되어 있을 경우 ",".join(dest_col_order) 실행 시 TypeError 발생
  2. 컬럼 이름이 누락됨
    • dest_col_order가 None 또는 빈 리스트([])일 경우 발생 가능
    • 즉, INSERT INTO %s (%s) VALUES(%s)에서 컬럼 목록이 비어있는 경우 오류 발생
  3. 잘못된 CSV 또는 데이터 파일 업로드
    • Import할 파일에서 **컬럼명 행(헤더)**이 없거나, 컬럼명이 비어 있는 경우
    • 특정 필드가 NULL이지만, NOT NULL 제약 조건이 있는 컬럼에 삽입하려는 경우
  4. Workbench 버그 또는 불완전한 설정
    • MySQL Workbench에서 Import 시 자동 매핑이 올바르게 수행되지 않았을 가능성
    • 대상 테이블의 컬럼이 일치하지 않는 경우

 


 

🛠 해결 방법

 

✅ 1. 테이블 및 컬럼 확인

MySQL에서 아래 쿼리를 실행하여, 대상 테이블(self._table_w_prefix)과 컬럼 정보(dest_col_order)가 올바르게 존재하는지 확인하세요.

DESC your_table_name;
  • your_table_name이 정확한지 확인하세요.
  • 컬럼명이 비어있거나 NULL 값이 포함되지 않았는지 확인하세요.

✅ 2. 데이터 파일(Import할 파일) 확인

  • CSV, Excel, JSON 등의 데이터 파일을 열어서 헤더 행이 존재하는지 확인
  • 헤더가 비어있거나, 컬럼명이 NULL로 표시된 경우 이를 올바르게 수정

✅ 3. Workbench에서 Import 설정 재확인

  • "Column Mapping" 단계에서 매핑이 올바르게 되었는지 확인
  • NULL이 포함된 열이 올바르게 지정되었는지 확인

✅ 4. 스크립트 수정 (코드 레벨에서 예외 처리)

만약 수동으로 Python 스크립트를 실행하는 경우라면, None 값이 포함될 수 있는 부분을 수정해야 합니다. 예를 들어:

python
 
",".join([col if col is not None else "NULL" for col in dest_col_order])
 

이렇게 하면 None 값을 "NULL" 문자열로 변환하여 오류를 방지할 수 있습니다.


 

🔚 결론

 

오류의 원인은 컬럼명 목록(dest_col_order)에 None 값이 포함되어 있어 문자열 변환이 실패한 것입니다.


위의 해결 방법 중, Import 데이터 파일을 확인하고,

 

Workbench에서 컬럼 매핑을 재설정하는 것이 가장 빠른 해결책일 가능성이 높습니다. 🚀

 

 

300x250
반응형