본문 바로가기
공부/Python

[python] 파이썬에서의 json(str)과 dictionary 타입.. 그리고 request

by 병진들 2021. 5. 27.

기본적으로 python에서 json 타입은 없다.

json.dump() 를 해버리면 이 데이터의 타입은 str

 

보통 request.get() 같은 통신을 할때 웹에서 json 타입의 데이터를 받아와 처리해야 하는 경우가 많은데,

str타입이라 특정 키값에 접근하기 쉽지 않다.

 

접근하는 방법은 json(str) -> dictionary로 변환 후 key에 접근...

아래와 같이 하면 dictionary 타입으로 변환된다.

json.loads (json(str) -> dictionary)

import json
import requests

url = 'localhost:8000/api/example'

res = requests.get(url)
type(res.text)	# str
res.['key-name']	# 오류


res = json.loads(res.text)
type(res.text)	# dictionary

res.['key-name'] # 가능

 

 

 

python에서 dictionary 타입은 KEY-VALUE 형태이기 때문에 json의 키값에 접근하기 용이하다.

 

이런저런 설정을 한 후에 다시 json 형태로 웹에 전송해야한다면 json.dumps()를 사용하면 된다.

str타입으로 변환하지 않고 request를 보내면 당연히 에러가 난다.

 

json.dumps (dictionary -> json(str))

jsondata = json.dumps(data, indent=4) # indent는 그저 가독성을 위한것..
requests.post(url, headers= headers, data = jsondata)

이렇게 str타입으로 변환 후 post를 보내야 함..

 

ps. 

json.dumps 와 json.dump의 차이는 저장되어있는 json파일과 메모리상에있는 json파일의 차이라고 한다.

 


ref: https://docs.python.org/2/library/json.html

댓글