[Python] requests를 이용한 REST API 통신 + 일부 파이썬 문법

new Dean( );·2021년 9월 20일

알아보자

목록 보기
2/3

requests를 이용한 REST API 통신

requests를 사용해야 되므로 import해준다 ~

import requests

curl command를 보고 api를 호출하는 코드를 작성해야되는데, 다음 사이트가 해준다!

Convert curl command syntax to Python requests

  • 변환된 코드를 복붙하기보단 활용해서 사용하는 것을 추천한다.
  • 왜냐면 몇 번 사용하면 규칙이 보인다.
    • GET/POST 찾기
    • -H : header
    • -D : data

GET

import json, requests

url = '<사용할 url>'

h = {
	'Name1' : 'Value1',
	'Name2' : 'Value2',
	...
}

# 파라미터 : headers=변수명(여기선 h로 선언) 또는 headers={dd:dd} 로 바로 대입
# .json() : 딕셔너리로 읽기
res = requests.get(url, headers=h).json()

header가 여러 개면 딕셔너리로 묶어서 보내준다. 어차피 딕셔너리 형태로 보내야 하므로, 위의 예제와 같이 따로 선언해서h 파라미터로 보내주는 게 낫다.


POST

import json, requests

url = '<사용할 url>'

h = {
	'Name1' : 'Value1',
	'Name2' : 'Value2',
	...
}

# data는 무조건 json형태여야 한다!!!
d = '{ 'Name': 'Value' }'

# headers, data 파라미터로 
res = requests.post(url, headers=h, data=d).json()

# 결과를 받아올 필요가 없는 경우 !
requests.post(url, headers=h, data=d)

json.dumps(dic) 딕셔너리로 만든 데이터를 파라미터로 보내고 싶은 경우

json으로 바꿔준다.

dic = {
	'command' : <내용생략>
}
dd = json.dumps(dic)
requests.post(url, headers=h, data=dd)

# 이렇게도 가능!
requests.post(url, headeres=h, data=json.dumps(dic))

json으로 변환하지 않고, 딕셔너리 그 대로 보내면 형태가 맞지 않아 에러가 발생한다.


파이썬 문법

내가 필요한 것 위주로 ㅎㅎ

List

선언

a = []  # 빈 리스트
b = [1, 2, 3]
c = [1, 2, ['a', 'b']]  # 섞어도 됨!

인덱싱

b[0]
# 1
b[-1]  # 파이썬의 꿀기능! 뒤에서부터
# 3

슬라이싱

bb = b[0:2]  # 0부터 2전까지
# [1, 2]
bc = b[:2]  # 시작부터 2전까지
# [1, 2]

리스트 합치기

aaa = [1, 2]
bbb = [3, 4]
ccc = aaa + bbb
# [1, 2, 3, 4]

길이구하기

len(ccc)
# 4

리스트에 추가, 삭제

ad = []
ad.append(1)  # 1 추가
ad.append(2)  # 2
# ad : [1, 2]

del a[1]  # 1번째 요소값 삭제
# ad : [1]

정렬

srt = [5, 4, 3, 2, 1]
srt.sort()
# srt : [1, 2, 3, 4, 5]

Dictionary

Key-Vlaue 를 한 쌍으로 갖는 자료형!

Key값은 고유하므로, 하나만 존재할 수 있다. (첫 번째 이후 무시됨)

dic = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}

빈 딕셔너리 생성

# 빈 딕셔너리 생성
dic = dict()
dic2 = { }

쌍 추가

dic['a'] = 3
dic['b'] = 5

print(dic['a'])  # 3

0개의 댓글