JSON 파일 포맷 다루기
JSON(JavaScript Object Notation)은 데이터를 구조화하여 저장하는 대표적인 포맷 중 하나입니다. Pandas는 JSON 데이터를 효율적으로 다룰 수 있는 다양한 기능을 제공합니다. 이번 포스팅에서는 JSON 파일을 Pandas에서 로드하고 저장하는 방법을 상세히 알아보겠습니다.
1. JSON 파일이란?
JSON은 키-값 쌍으로 이루어진 경량 데이터 교환 형식으로, 사람이 읽고 쓰기 쉽고 기계가 파싱하고 생성하기 용이한 특징을 가집니다. 주로 웹 서비스에서 데이터를 주고받을 때 사용됩니다.
JSON 데이터의 예시는 다음과 같습니다:
{
"name": "Alice",
"age": 25,
"city": "New York"
}
또한, JSON은 리스트 형식의 데이터를 저장할 수도 있습니다:
[
{"name": "Alice", "age": 25, "city": "New York"},
{"name": "Bob", "age": 30, "city": "Chicago"}
]
이제 Pandas에서 JSON 파일을 다루는 방법을 살펴보겠습니다.
2. JSON 파일 로딩
Pandas에서는 read_json()
함수를 사용하여 JSON 데이터를 DataFrame으로 변환할 수 있습니다.
2.1 단순 JSON 로딩
import pandas as pd
# JSON 데이터 로딩
json_file = "data.json"
df = pd.read_json(json_file)
print(df)
위 코드에서 data.json
파일을 DataFrame으로 불러왔습니다. JSON 데이터의 구조에 따라 자동으로 적절한 형태로 변환됩니다.
2.2 JSON 문자열 로딩
파일이 아니라 문자열 형태의 JSON 데이터를 처리할 수도 있습니다.
json_data = '[{"name": "Alice", "age": 25, "city": "New York"}, {"name": "Bob", "age": 30, "city": "Chicago"}]'
# 문자열을 DataFrame으로 변환
df = pd.read_json(json_data)
print(df)
3. JSON 파일 저장
DataFrame을 JSON 파일로 저장하려면 to_json()
함수를 사용합니다.
3.1 기본 JSON 저장
# DataFrame을 JSON 파일로 저장
df.to_json("output.json")
3.2 JSON 포맷 지정
JSON에는 다양한 저장 방식이 있으며, orient
인자를 사용하여 지정할 수 있습니다.
3.2.1 records
형식 (리스트 내부에 딕셔너리)
df.to_json("output_records.json", orient="records", indent=4)
출력된 JSON 형식은 다음과 같습니다:
[
{
"name": "Alice",
"age": 25,
"city": "New York"
},
{
"name": "Bob",
"age": 30,
"city": "Chicago"
}
]
3.2.2 split
형식 (컬럼 분리)
df.to_json("output_split.json", orient="split", indent=4)
출력된 JSON 형식:
{
"columns": ["name", "age", "city"],
"index": [0, 1],
"data": [["Alice", 25, "New York"], ["Bob", 30, "Chicago"]]
}
3.2.3 table
형식 (테이블 구조)
df.to_json("output_table.json", orient="table", indent=4)
출력된 JSON 형식:
{
"schema": {
"fields": [
{"name": "index", "type": "integer"},
{"name": "name", "type": "string"},
{"name": "age", "type": "integer"},
{"name": "city", "type": "string"}
],
"primaryKey": "index"
},
"data": [
{"index": 0, "name": "Alice", "age": 25, "city": "New York"},
{"index": 1, "name": "Bob", "age": 30, "city": "Chicago"}
]
}
4. JSON 파일을 다룰 때 주의할 점
4.1 JSON 구조 확인
JSON 파일을 로드할 때 read_json()
이 예상과 다른 결과를 반환할 수 있습니다. 이럴 때 orient
옵션을 확인해야 합니다.
df = pd.read_json("data.json", orient="records")
4.2 인코딩 문제
JSON 파일을 저장하거나 읽을 때 인코딩 문제를 방지하려면 utf-8
을 명시적으로 지정하는 것이 좋습니다.
df.to_json("output.json", orient="records", force_ascii=False, indent=4)
5. 결론
Pandas를 사용하면 JSON 데이터를 쉽게 로드하고 저장할 수 있습니다. 다양한 orient
옵션을 사용하여 원하는 JSON 형식으로 변환할 수 있으며, 데이터 분석과 웹 API 연동 시 유용하게 활용할 수 있습니다. JSON 파일을 다룰 때는 데이터 구조를 확인하고, 인코딩 문제를 신경 쓰는 것이 중요합니다.
'Python > Pandas' 카테고리의 다른 글
웹에서 데이터 불러오기 (Pandas) (0) | 2025.09.30 |
---|---|
Pandas SQL 파일 포맷 다루기 (0) | 2025.09.29 |
Pandas로 Excel 파일 다루기 (0) | 2025.09.27 |
Pandas로 CSV 파일 다루기 (0) | 2025.09.26 |
Series와 DataFrame의 차이 및 기본 생성 방법 (0) | 2025.09.25 |