본문 바로가기
Python/INFO

[PYTHON] JSONL(JSON LINES)형식

by 오늘은강박사갈거야~~ 2021. 7. 29.
반응형
처음 보는 형식이라 정리해두려고 합니다.

 

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과 동일하나, encoding을 utf8로, 그리고 각각의 행이 입력될 때 \n(행 띄우기)를 추가해주면 됩니다.

 

import json 

row_data = [{"id":"a","title":"higuys","genre":"drama"}, {"id":"b","title":"make_me_happy","genre":"action"}] 

with open("make_jsonl.jsonl" , encoding= "utf-8",mode="w") as file: 
	for i in row_data: file.write(json.dumps(i) + "\n")

 

잘 만들어졌는지 확인해 보면,

 

with open("make_jsonl.jsonl") as f: 
	for line in f: print(line)

 

아래와 같이 출력됩니다.

 

{"id": "a", "title": "higuys", "genre": "drama"} 
{"id": "b", "title": "make_me_happy", "genre": "action"}

 

참고

https://jsonlines.org/

 

JSON Lines

This page describes the JSON Lines text format, also called newline-delimited JSON. JSON Lines is a convenient format for storing structured data that may be processed one record at a time. It works well with unix-style text processing tools and shell pipe

jsonlines.org

 

반응형

댓글