python 메모

[python] jsonl로 데이터 읽고 쓰기

Fine애플 2023. 11. 28. 14:17

json보다 jsonl이 편할 때는 파일로 데이터를 읽고 쓸 때이다. json은 데이터를 한꺼번에 불러와야 하지만 jsonl은 file 객체로 읽고 쓰기 때문에 a 모드를 지원한다. 즉, jsonl 파일에 데이터 한줄만 추가하는 형태로 사용할 수 있지만 json은 그게 안된다.

 

1. 데이터 쓰기

주의사항은 indent=4을 주게되면 저장된 파일에 newline이 생겨 읽을 때 에러가 뜬다. 이거 빼준다.

import json

d = {
    "a":[1,2,3],
    "b":[4,5,6,7],
    "C": "qwer",
    "D": "한글"
}

data_list = [d]*4

with open("test.jsonl", "a") as f:
    for data in data_list:
        f.write( json.dumps(data, ensure_ascii=False) + "\n" )

 

2. 데이터 읽기

data_list = []
with open("test.jsonl", "r") as f:
    for line in f:
        data_list.append( json.loads(line) )
        
data_list

>>>>
[{'a': [1, 2, 3], 'b': [4, 5, 6, 7], 'C': 'qwer', 'D': '한글'},
 {'a': [1, 2, 3], 'b': [4, 5, 6, 7], 'C': 'qwer', 'D': '한글'},
 {'a': [1, 2, 3], 'b': [4, 5, 6, 7], 'C': 'qwer', 'D': '한글'},
 {'a': [1, 2, 3], 'b': [4, 5, 6, 7], 'C': 'qwer', 'D': '한글'}]

 

 

 

 

728x90
댓글수0