decode() 가 어떤 의미인지 알고싶습니다
import sys
import io
import urllib.request as req
from urllib.parse import urlencode
sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding = 'utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding = 'utf-8')
api = "https://api.ipify.org"
values = {
'format' : 'json'
}
print('before', values)
params = urlencode(values)
print('after', params)
url = api + "?" + params
print("요청 url", url)
reqData = req.urlopen(url).read().decode('utf-8')
print("출력", reqData)
질문 1. reqData에서 왜 decode(utf-8) 을쓰는 이유가 뭐져? 저 함수를 지워도 출력은 똑같은데 어떤 의미가 있는지 궁금해서 질문합니다!
질문 2. 왜 urlencode를 쓰는지 궁금합니다. 인코드를 하지않고 'format' : 'json' 형태로 요청해도 아이피가 출력되는데 굳이 인코드를해서 format=json으로 요청하셨는지 궁금합니다.
답변 1
1
네 권혁진님
urlencode는 어떤 일종의 규악입니다.
요즘은 그냥 한글 url로 보내기도 하지만, 아직까지는 인코딩해서 보내는 방법을 주로 사용하고 있습니다.
format=json 형태는 해당 api에서 요구하는 방법의 한 가지 형태입니다.
편한 방법으로 보내시면 됩니다.
decode는 송신 측과 수신측의 코드를 파이썬에서 유니코드 또는 utf-8로 변환하기 위해서
사용한 함수입니다. 현재 시점에서는 함수가 없어도 작동합니다. 기본 python 3.x는 utf-8 이거든요.
시간 나실 때 아래 링크를 읽어보세요. 잘 나와 있습니다.
현재 예제에서 error 발생
0
367
3
유튜브 동영상 다운로드
0
1447
2
Atom 에디터 관련
0
337
1
위시켓 폼데이터
0
274
1
스케줄러 사용 관련 질문 드립니다
0
627
1
selenium 에러
0
428
1
Progress bar 쓰레드 관련
0
489
1
Install Package 관련 문의
0
328
1
tkinter 샘플 코드 실행 오류 건
0
1267
1
4-7-6 네이버 & 카카오 주식 정보 가져오기
0
381
1
네이버자동로그인_by_selenium
0
876
1
위시캣 로그인 처리 및 크롤링 질문
0
344
1
2-8-1 네이버이미지 크롤링 질문
1
604
3
li:nth-of-type 질문
0
350
2
에러가 뜨는데 잘 모르겠어요ㅠ
0
401
2
Install Packages 항목이 안보이는 이유가 뭘까요?
0
400
2
환경변수 Path 설정 방법
0
631
1
웹 브라우저 없는 스크랩핑 및 파싱 실습(1) - 인프런
0
333
1
웹 브라우저 없는 스크랩핑 및 파싱 실습(1) -git주소
0
475
3
download2-8-1. py질문
0
203
1
ip 차단 당하는 거 같은데 아무리 랜덤주고, sleep 줘도 안 되는데 다른 방법 더 있을까요??
0
645
1
인프런 환경이 바뀌어서 제나름대로 하는데
0
196
1
다시올려주신 예제파일로하는데
0
190
1
아직도 에러가뜨나보네요?
0
584
1





