본문 바로가기
반응형

Python9

[PYTHON] JSONL(JSON LINES)형식 처음 보는 형식이라 정리해두려고 합니다. 1. 정의 jsonl은 json line의 약어로, JSON Lines 텍스트 형식이라고 한다. 말 그대로, JSON 내부에 한 줄씩 JSON을 저장할 수 있는 구조화된 데이터 형식으로 이해하면 된다. 2. 형태 형태는 아래와 같다. {"id":"a","title":"안녕","genre":"드라마"} {"id":"b","title":"바보","genre":"액션"} 그럼 JSON 형태로 모아 두면 그게 jsonl일까요? 규칙이 존재합니다. 1. UTF-8 의 인코딩이어야 한다. 2. 각 행들은 모두 JSON 형태여야 한다. 3. 각각의 줄은 \n으로 구분되어야 한다. 3. 생성법 그럼 jsonl 형태의 파일은 어떻게 생성해야 할까요? 일반적인 json과 동일하나,.. 2021. 7. 29.
[PYTHON] JSON 파일 예쁘게 정렬해서 출력하는 방법 Python 3에서 JSON 파일을 열어보면 아래와 같이 읽기 힘든 형태로 출력된다. {"이름": "강박사","나이": 35,"학력": [{"고등학교": "너너고등학교","중학교": "거거중학교","초등학교": "더더초등학교"}]} 이런 경우에 필자는 보통 인터넷에 있는 json editor를 이용해서 정렬해서 json file을 확인하곤 했으나, python 3 내부에서 바로 처리가 가능하다. json 파일을 처리하는 dump 파일에서 indent와 sort_keys 인수를 넣어주면 깔끔하게 출력된다. 참고로 indent 값은 변경 가능하다. 일반적으로 tab구분으로 정렬하기에 4칸을 indent 값으로 주었다. 아래 예시를 보자. json.dump(json_file, indent = 4, sort_k.. 2021. 7. 5.
[Python Error] UnicodeDecodeError: 'cp949' codec can't decode byte 0xed in position 42: illegal multibyte sequence 에러명 UnicodeDecodeError: 'cp949' codec can't decode byte 0xed in position 42: illegal multibyte sequence 에러 내용 파이선 디코딩 에러로, 파이썬 3은 파일을 읽어올 때, ANSI 기준으로 인코딩 된 파일만 읽어올 수 있다. 그 이외의 형식으로 인코딩 된 파일들은 인코딩 명을 명시 해줘야 한다. 해결 방안 현재 에러는 CP949형태의 인코딩 방식을 사용한 파일을 그냥 OPEN 하려 하였기에 발생한 에러로, 파일의 인코딩을 명시해주면 된다. 아래는 예시로, 인코딩이 UTF8로 된 파일을 읽을 떄를 기준으로 작성하였다. 자신의 파일의 인코딩을 확인하고 해당하는 인코딩방식을 UTF8 대신 기입해 주면 된다. with open(fi.. 2021. 7. 5.
반응형