안녕하세요. 이번 시간에는 간단하게 json 형식으로 되어 있는 str을 object로 어떻게 떨구는지, 그리고 object를 어떻게 json으로 떨구는지 간단하게 알아보겠습니다. 머릿속에는 대략 이 정도 그림만 그려두시면 수월할 듯 싶습니다. 아차. 그리고 이 두 메서드는 뭔가 옵션이 많은데요. 이에 대해서는 나중에 차근 차근 언급해 보도록 하겠습니다.

 

 


 먼저 json의 loads는 JSON을 python object로 바꿔줍니다.

 

 

 간단한 설명을 보면 str, bytes, byte array인데 JSON document가 포함된 무언가인가 봐요. 이것을 python object로 바꿔준다. 정도로만 설명되어 있어요. 예제를 보겠습니다.

 

 

 json text가 위와 같아요. 제가 읽기 편하게 만들어 놓았는데요. 앞에 [가 있는 걸로 보아서는 배열이고요. 그 안에 {}, {}가 2개 있는 걸로 보아서는 object 2개를 넣어놓은 배열이겠군요. 이 문서를 보면 array는 list로, object는 dict로 번역이 된다고 되어 있는데요. 일단 앞에 '['가 있는 걸로 보아서는 list가 떨어질 겁니다. object가 2개 있으니까 obj[0], obj[1] 이렇게 있을 겁니다.

 

 

 그림으로 그리면 이런 상황이에요.

 

 

 다음에, 배열 안에 object들이 있었습니다. {}로 표시된 것들인데요. 'name'과 'age'를 속성으로 가지고 있었어요. 이들이 dict로 변환되게 됩니다. 즉 obj[0]['name']은 'cho'가 나오게 됩니다. 정말 그러한지 실행 결과를 확인해 볼게요.

 

 

 'cho'가 잘 나오는 것을 볼 수 있어요.

 

 


 반대로 object를 json text로 바꿔먹을 수도 있는데요. 문서를 보시면 어떤 object를 json으로 바꾸는 것이 지원되는지 나와 있어요. 저는 이 중에서 dict를 json으로 바꿔먹어보도록 하겠습니다.

 

 

 설명을 보면, obj를 JSON formatted str로 바꿔먹는다고 되어 있는데요. 간단하게 바꿔 보도록 하겠습니다.

 

 

 obj는 'name'을 키로 가지고 value가 'cho'인 쌍, 'age'를 키로 가지고 value가 15인 쌍 2개를 저장하고 있는 딕셔너리입니다.

 

 

 실행 결과는 위와 같습니다. 아주 잘 나왔음을 알 수 있어요. 다음에는 custom object를 어떻게 json text로 바꾸는지, 그리고 역변환은 어떻게 하는지 알아보도록 하겠습니다.