[Python] API 호출, xml to json

상교·2022년 7월 21일
0

Python

목록 보기
1/1

API를 호출해서 DB에 저장해야 하는데, 불러온 데이터를 문자열로 생각하고 정규표현식으로 잘라보려고 용을 쓰던 중 xml 파일이라는 걸 깨닫고 바로 해결되어버렸다.

다만 데이터에 <, >, " 같은 특수기호들이 &lt; &gt; &quot; 같은 식으로 저장되어 있어서 이 문자들을 특수기호로 다시 바꿔준 뒤 xmltodict.parse 함수에 넣어주었다.

그 뒤 json.dumps 함수를 사용하면 되는데 이때 한글이 깨져서 인코딩 관련 인자를 찾아보니 ensure_ascii=False 로 설정하고 파일을 저장할 때 utf8 로 인코딩 해주니 해결되었다.

import requests
import json
import xmltodict

req = requests.post(url, data=datas)
rawdata = req.text
cleaned_data = rawdata.replace("&lt;", "<").replace("&gt;", ">").replace("&quot;", "\"")

jsonString = json.dumps(xmltodict.parse(cleaned_data), indent=4, ensure_ascii=False)

with open("xml_to_json.json", 'w', encoding='utf8') as f:
    f.write(jsonString)
f.close()
profile
편안함에 안주하지 않는 프론트엔드 개발자입니다.

0개의 댓글