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
'python 메모' 카테고리의 다른 글
[websocket] 연결이 끊겼을 때 reconnect를 위한 방법들 (0) | 2023.12.16 |
---|---|
[GPU] pynvml 모듈로 gpu 사용량 체크하기 (0) | 2023.12.09 |
[datetime] int형 시간을 datetime으로 바꾸기 (0) | 2023.11.27 |
[pandas] 모든 셀에서 찾고자 하는 string이 있는 row 찾기 (0) | 2023.11.16 |
[pkill] 여러 프로세스 동시에 종료시키기 (0) | 2023.07.08 |