Python
Python Open API와 json
안드로이
2022. 1. 23. 22:48
Open API와 연동하는 방식은 주로 json 형식을 사용한다.
POSTMAN 툴을 이용하여 동작여부를 확인해보는것이 좋다.
- API : Application Programming Interface
HTTP를 통해 데이터를 요청하며, XML 이나 JSON 형식으로 응답
- API Server : 스프링 프레임워크, 노드, Django 프레임워크, Flask 프레임워크
아래 예제는 https://developers.naver.com/ 에서 어플리케이션 등록 후 API 테스트 가능하다.
계정은 본인이 등록된것을 사용하면 된다.
- json 연동 get 방식 예제
import requests
import pprint
headers = {
'X-Naver-Client-Id': 'TVcdGN315f8ZIswuZ4tX',
'X-Naver-Client-Secret': '4F9aWQDSdZ',
}
payload = {
'query': '파이썬',
'display': 100,
}
url = 'https://openapi.naver.com/v1/search/blug'
# GET 방식
res = requests.get(url, headers=headers, params=payload)
body = res.json()
# JSON 포맷으로 응답, null --> None, false --> False, true --> True 로 자동 변환
pprint.pprint(body)
result = res.json()['items'][2]['title']
# items 카의 값을 리스트, 2번째 딕셔너리, title 키의 값을 가져옴
print(result)
- json 연동 post 방식 예제
from requests import Request
from requests import Session
import pprint
s = Session()
headers = {
'X-Naver-Client-Id': 'TVcdGN315f8ZIswuZ4tX',
'X-Naver-Client-Secret': '4F9aWQDSdZ',
}
text = 'Yesterday all my troubles seemed so for away'
payload = {
'source': 'en',
'target': 'ko',
'text' : text,
}
url = 'https://openapi.naver.com/v1/language/translate'
req = Request('POST', url, data=payload, headers=headers) # POST방식
prepared = req.prepare()
res = s.send(prepared)
result = res.json()
pprint.pprint(result) # JSON 출력
result2 = res.json()['message']['result']['translatedText']
print(result2)