CSV/TSV 파서
CSV(쉼표로 구분된 값)는 스프레드시트와 데이터베이스에서 널리 지원되는 간단한 표 형식 데이터 형식입니다. 이 도구는 CSV와 TSV 파일을 파싱하고, 구분자를 자동 감지하며, 인용된 필드를 처리하고, 데이터를 서식화된 표로 표시합니다.
사양
주요 사용 사례
- 데이터베이스로 가져오기 전 CSV 내보내기 미리보기
- API 사용을 위해 CSV를 JSON으로 변환
- 스프레드시트의 데이터 내보내기 유효성 검사
- 로그 파일 및 데이터 덤프 빠른 검사
기능
- 구분자 자동 감지 (쉼표, 탭, 세미콜론, 파이프)
- 헤더가 있는 서식화된 표로 표시
- JSON 객체 배열로 변환
- JSON 표현을 위한 대화형 트리 뷰
- HTML 표로 복사
- 행과 열 전치
예제
사용자 데이터
사용해 보기 →사용자 정보가 포함된 CSV 파일.
name,email,role
Alice,alice@example.com,admin
Bob,bob@example.com,user
Charlie,"charlie@example.com",user팁
- 첫 번째 행은 일반적으로 헤더로 처리됩니다.
- 쉼표나 줄바꿈을 포함하는 필드는 큰따옴표로 감싸세요.
- 인용된 필드 내의 큰따옴표는 ""로 이스케이프합니다.
- TSV(탭으로 구분)는 많은 인용 문제를 피합니다.
이해하기 CSV/TSV 파서
CSV(쉼표로 구분된 값)는 가장 오래되고 널리 지원되는 데이터 교환 형식 중 하나입니다. 단순함에도 불구하고, CSV는 구분자, 인용, 인코딩, 줄 끝에 관한 파싱 문제를 일으킬 만큼 충분한 모호성을 가지고 있습니다. RFC 4180이 표준을 정의하지만, 많은 생산자가 이를 벗어나 상호 운용성 문제를 야기합니다.
기본 구조는 줄당 하나의 레코드이며 필드는 쉼표로 구분됩니다. 필드에 쉼표, 줄바꿈 또는 큰따옴표가 포함된 경우 큰따옴표로 감싸야 합니다. 인용된 필드 내의 큰따옴표는 두 번 반복하여 이스케이프합니다(""). 첫 번째 레코드는 일반적으로 헤더 행으로 처리되지만, 이는 요구사항이 아닌 관례입니다.
구분자 변형이 흔합니다. TSV(탭으로 구분된 값)는 탭을 사용하여 대부분의 인용 문제를 피합니다. 쉼표를 소수점 구분자로 사용하는 유럽 로케일에서는 종종 세미콜론을 필드 구분자로 사용합니다. 파이프로 구분된 파일은 레거시 시스템에서 나타납니다. 좋은 CSV 파서는 처음 몇 줄을 분석하여 구분자를 자동 감지합니다.
문자 인코딩은 또 다른 빈번한 문제 원인입니다. Windows의 Excel은 UTF-8이 아닌 시스템 로컬 인코딩으로 CSV를 저장합니다. UTF-8 CSV를 Excel에서 열면 깨진 문자가 표시될 수 있습니다. 파일 시작에 UTF-8 BOM(바이트 순서 표시)을 추가하면 Excel에 파일이 UTF-8로 인코딩되었음을 알립니다. 시스템 간 CSV 파일을 교환할 때는 항상 문자 인코딩을 확인하세요.
CSV 데이터가 Excel에서 잘못 표시될 때, 가장 흔한 두 가지 원인은 인코딩 불일치와 구분자 불일치입니다. 로컬 인코딩을 가정하고 Excel이 열어버린 UTF-8 파일은 깨진 문자를 표시하며, BOM을 추가하면 보통 해결됩니다. 구분자 문제는 Excel이 쉼표 대신 세미콜론을 기대하는 유럽 로케일에서 발생합니다. 파일을 더블 클릭하는 대신 데이터 > 텍스트에서 가져오기 마법사를 사용하면 인코딩과 구분자 설정을 명시적으로 제어할 수 있습니다.
RFC 4180에 따르면, 쉼표, 줄바꿈 또는 큰따옴표를 포함하는 모든 필드는 큰따옴표로 감싸야 합니다. 인용된 필드 내의 큰따옴표는 두 번 반복하여 이스케이프합니다. 대부분의 CSV 라이브러리가 이를 올바르게 처리하지만, 파일을 수동으로 편집하거나 적절한 CSV 파서 대신 단순한 문자열 분할로 파싱할 때 문제가 나타납니다. TSV(탭으로 구분된 값)는 데이터에 탭이 거의 나타나지 않기 때문에 이러한 인용 복잡성의 대부분을 피하며, 생물정보학, 데이터 과학, 필드 값에 쉼표가 자주 포함되는 환경에서 인기 있는 선택입니다.
CSV와 JSON은 서로 다른 데이터 교환 요구를 충족합니다. CSV는 일관된 열을 가진 평탄한 표 형식 데이터에 이상적입니다. 스프레드시트와 데이터 도구에서 보편적으로 지원되며 대용량 데이터셋에서 컴팩트합니다. JSON은 중첩되거나 계층적인 데이터에 더 나은 선택이며 API의 표준 형식입니다. 데이터베이스 내보내기, 보고서, 스프레드시트 워크플로우의 경우 CSV가 실용적인 기본값으로 남아 있습니다.