본문 바로가기

Python

[Python] 12. 서버통신(requests), json 파싱(json_parsing)

#정리

#35requests - 서버통신 

** 요약하면 3줄로 줄어듬 >> 36번 챕터 참조

#<import requests> 필요
#url등록 및 요청

 - url = "http://IP주소:8090/study/json_py35req.do"
 - response = requests.get(url)

#응답 정보 확인(통신 상태, 헤더 정보)
 - print(response) #통신 상태 메세지 반환 >> 200(정상)
 - print(response.headers) #헤더 정보 반환
#응답 내용 확인
 - print(response.content) #바이트 코드형태로 json 데이터 반환 >> 인코딩(decode()) 필요
 - str_text = bytes_Text.decode("utf-8") #서버 응답내용을 문자열로 변경


#36json - json 파싱

#import requests
#import json
#서버 응답요청 및 응답내용 문자열로 변환

더보기
response = requests.get(url)
str_text = response.content.decode("utf-8")
print(str_text) #str

#parsing (str >> json) : 원소(item)['key']형태로 내부 값에 접근
 - json_vos = json.loads(str_text) #문자열(서버 응답내용)을 json형식으로 변경
 - for vo in json_vos: #list안에 dict형태로 데이터가 있으므로 원소(item)['key']형태로 내부 값에 접근
  >> print(vo['num'],vo['model'],vo['brand'],vo['bookdate'])

 

 

 

#35requests - 서버통신 

** 요약하면 3줄로 줄어듬 >> 36번 챕터 참조

#<import requests> 필요
#url등록 및 요청

 - url = "http://IP주소:8090/study/json_py35req.do"
 - response = requests.get(url)

#응답 정보 확인(통신 상태, 헤더 정보)
 - print(response) #통신 상태 메세지 반환 >> 200(정상)
 - print(response.headers) #헤더 정보 반환
#응답 내용 확인
 - print(response.content) #바이트 코드형태로 json 데이터 반환 >> 인코딩(decode()) 필요
 - str_text = bytes_Text.decode("utf-8") #서버 응답내용을 문자열로 변경

 

--예문 코드 보기--

더보기
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests

print("Hello python")
print("--response------")
url = "http://IP주소:8090/study/json_py35req.do"

response = requests.get(url)
print(response) #통신 상태 메세지 반환 >> 200(정상)
print("---headers------")
print(response.headers) #헤더 정보 반환
print("---content-----")
print(response.content) #바이트 코드형태로 json 데이터 반환 >> 인코딩(decode()) 필요
bytes_Text = response.content
print(type(bytes_Text)) #bytes type
#print(dir(bytes))
print("---content >> decode()----")
str_text = bytes_Text.decode("utf-8") #서버 응답내용을 문자열로 변경
print(str_text)
print(type(str_text))

 

 

 


#36json - json 파싱

#import requests
#import json
#서버 응답요청 및 응답내용 문자열로 변환

더보기
response = requests.get(url)
str_text = response.content.decode("utf-8")
print(str_text) #str

#parsing (str >> json) : 원소(item)['key']형태로 내부 값에 접근
 - json_vos = json.loads(str_text) #문자열(서버 응답내용)을 json형식으로 변경
 - for vo in json_vos: #list안에 dict형태로 데이터가 있으므로 원소(item)['key']형태로 내부 값에 접근
  >> print(vo['num'],vo['model'],vo['brand'],vo['bookdate'])

 

--예문 코드 보기--

더보기
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
import json

print("--response------")
url = "http://IP주소:8090/study/json_py35req.do"

response = requests.get(url)
str_text = response.content.decode("utf-8")
print(str_text) #str


print("-- parsing (str >> json) ------")
#import json
json_vos = json.loads(str_text) #문자열(서버 응답내용)을 json형식으로 변경
print(json_vos)
print(type(json_vos)) #list or dict

for vo in json_vos: #list안에 dict형태로 데이터가 있으므로 원소(item)['key']형태로 내부 값에 접근
	print(vo['num'],vo['model'],vo['brand'],vo['bookdate'])