일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 제일컴퓨터자수 유니폼
- python openapi
- 부산청년센터 후기
- 중소벤처기업진흥공단 인턴 면접 후기
- 윌커슨
- 웹 프레임워크
- 중소벤처기업진흥공단 인턴 면접
- 전미르
- flask 실습
- flask 사용법
- 중진공 인턴 면접
- 전준우
- 에스더버니데이
- 유니폼 자수 마킹
- 황성빈
- 웹개발
- 롯데
- 롯데자이언츠
- 중소벤처기업진흥공단 인턴
- FLASK
- flask 프로젝트
- 중진공 인턴
- flask 튜토리얼
- Python
- 파이썬
- 자갈치 부산청년센터
- 김태형
- 중소벤처기업진흥공단 면접 후기
- 중진공 인턴 면접 후기
- 중진공 면접 후기
- Today
- Total
나의 모두 기록
[Python] json 형식을 데이터프레임으로 변환하기 본문
오늘은 json형식을 데이터프레임으로 쉽게 바꾸는 방법에 대해 고민한 과정에 대해 정리해보려고 합니다.
제가 사용한 던전앤파이터 API를 예시로 글을 한 번 작성해보도록 하겠습니다.
from urllib.request import urlopen
# API key 지정
key = "API_KEY"
url = f'https://api.neople.co.kr/df/servers?apikey={key}'
result = urlopen(url)
result_html = result.read()
result_html
먼저 urlopen() 함수를 사용하여 HTTP 요청을 보냅니다. 이 함수는 해당 URL에 대한 응답을 반환합니다.
result 변수에 저장된 응답을 read() 메서드를 사용하여 바이트 형식으로 읽어들입니다.
import json
result_json = json.loads(result_html)
print(json.dumps(result_json, indent=4))
json.loads() 함수를 사용하여 바이트 형식의 응답을 JSON 형식으로 변환합니다. json.dumps() 함수를 사용하면 json을 보기 좋은 형식으로 출력할 수 있습니다. 이때, indent 매개변수를 사용하여 들여쓰기를 설정합니다.
여기서 저는 result_json의 serverId와 serverName을 데이터프레임으로 변환하고자 하였습니다. 반복문을 사용하는 방법이 있었지만 조금 더 간단한 방법을 찾아보았습니다.
<첫 번째 시도 : map과 lambda 활용>
import pandas as pd
server_ids = list(map(lambda item: item['serverId'], result_json['rows']))
server_names = list(map(lambda item: item['serverName'], result_json['rows']))
server_df = pd.DataFrame({'serverId' : server_ids,
'serverName' : server_names})
server_df
result_json에서 서버 ID와 서버 이름을 추출하기 위해 map() 함수와 람다 함수를 사용하였습니다. 각 요소에서 serverId와 serverName 키의 값을 추출한 후, 데이터프레임으로 변환하였습니다.
<두 번째 시도 : json_normalize>
이 과정을 조금 더 간단하게 하는 방법이 없는지 ChatGPT에게 물어보았습니다. ChatGPT가 Pandas의 json_normalize() 함수를 사용하라고 조언하였습니다.
df_server = pd.json_normalize(result_json['rows'])
df_server
pd.json_normalize() 함수를 사용하여 JSON 데이터를 정규화(normalize)하여 데이터프레임으로 변환합니다. 정규화는 중첩된 JSON 구조를 평면화하여 표 형태의 데이터로 변환하는 작업을 수행합니다.
오늘은 json을 데이터프레임으로 변환하는 방법에 대해 알아보았습니다. GPT 덕분에 코딩 공부가 한결 쉬워졌습니다. json_normalize를 주로 사용하겠지만, map과 lambda를 사용하여 반복문을 대신하는 방법도 알아둘 필요가 있을 것 같습니다.
그럼 이만 오늘은 글 여기서 마치도록 하겠습니다. 읽어주셔서 감사합니다 :)
'정보 > Python' 카테고리의 다른 글
[Flask] 2. 라우팅과 템플릿 사용하기 (0) | 2024.10.09 |
---|---|
[Flask] 1. 웹 애플리케이션 첫 걸음 (1) | 2024.10.09 |
[Python] 도로명 주소를 위경도로 변환하기 (0) | 2023.05.24 |
[Python] 한글 URL 인코딩 (+URL로 이미지 출력) (1) | 2023.05.11 |