개요
협업 프로젝트 중 AI팀과 빅데이터 팀에서 xml형식보단 json형식의 데이터가 좀 더 사용성이 좋다고 하여 데이터 Python에서 xml데이터를 json데이터로 변경했다.
코드
#-*- coding: utf-8 -*-
import requests
from django.shortcuts import render
from django.conf import settings
import xmltodict
import json
from django.http import JsonResponse,HttpResponse
from .serializer import Serializer
from .models import Hotspot
# Create your views here.
def get_seoul_hotspots(request):
# API resquest
startpoint = 1
endpoint = 6
api_key = settings.SEOUL_API_KEY
url = f'http://openapi.seoul.go.kr:8088/{api_key}/xml/citydata/{startpoint}/{endpoint}/강남 MICE 관광특구'
response = requests.get(url)
hotspots_data = response.content
data_dict = xmltodict.parse(hotspots_data) # convert xml to dict
json_data = json.dumps(data_dict) #convert to json
# hotspot_data_list = []
# for hotspot_data in hotspots_data:
# AREA_NM = hotspot_data.find('AREA_NM').text
# LIVE_PPLTN_STTS = hotspot_data.find('LIVE_PPLTN_STTS').text
# AREA_CONGEST_LVL = hotspot_data.find('AREA_CONGEST_LVL').text
# AREA_CONGEST_MSG = hotspot_data.find('AREA_CONGEST_MSG').text
# AREA_PPLTN_MIN = hotspot_data.find('AREA_PPLTN_MIN').text
# AREA_PPLTN_MAX = hotspot_data.find('AREA_PPLTN_MAX').text
# hotspot = Hotspot.objects.create(
# AREA_NM = AREA_NM,
# LIVE_PPLTN_STTS = LIVE_PPLTN_STTS,
# AREA_CONGEST_LVL = AREA_CONGEST_LVL,
# AREA_CONGEST_MSG = AREA_CONGEST_MSG,
# AREA_PPLTN_MIN = AREA_PPLTN_MIN,
# AREA_PPLTN_MAX = AREA_PPLTN_MAX
# ) # it will delete, and I will Use class Serializer
# hotspot_data_list.append(hotspot)
# response_data = {
# 'status': 'success',
# 'hotspots': hotspot_data_list
# }
return HttpResponse(json_data, content_type = 'application/json')
- xmltodict: XML을 파이썬의 dict 객체로 읽어들이기 위한 간단한 라이브러리
3. xmltodict를 사용하는 이유
- 간결성: XML 데이터를 직접 파싱하려면 상당히 복잡, xmltodict를 사용하면 복잡한 XML 파싱 코드 없이도 XML 데이터를 파이썬 딕셔너리로 쉽게 변환 가능
- 일관성: xmltodict를 사용하면 XML 데이터를 파이썬의 딕셔너리로 표현할 수 있으므로, 파이썬에서 일반적으로 사용되는 데이터 조작 방법을 적용할 수 있으므로 코드의 일관성이 유지되고, 유지 보수가 용이해집니다.
- 편리성: xmltodict는 딕셔너리와 유사한 형태로 XML 데이터를 제공하므로, XML 데이터의 탐색과 수정이 훨씬 편리해집니다.
- 확장성: 딕셔너리 형태로 변환된 데이터는 다른 형식으로의 변환도 간단히 수행할 수 있습니다. 예를 들어, 위 코드에서는 json.dumps()를 사용하여 JSON 형식으로 쉽게 변환하고 있습니다.
'IT' 카테고리의 다른 글
Windows, python 가상환경에 환경변수 생성했는데 모듈을 찾지 못할 때 (0) | 2024.10.31 |
---|---|
MQTT Python Client -paho (0) | 2024.04.12 |
SSH 왜 필요한가? (0) | 2024.04.12 |
GPTs, 프로젝트 시작 전 갈피를 못 찾겠다면 한 번쯤 사용해볼만한 "Software Architect GPT "후기 (0) | 2024.04.12 |
앱 아키텍처 패턴을 먼저 알자 (0) | 2024.04.08 |