본문 바로가기
야매 개발실/Web Server

오늘의 한줄 팁! Python String -> JSON

by 야매플머 2012. 1. 5.
반응형

Python을 이용해 제작된 Django 프레임 워크를 이용해서 다른 서비스 서버와 Rest통신을 하다보면 String 형태의 정보 값을 받아 JSON 형태로 변형하여, 사용자 template에 제공해줘야 하는 경우가 생기게 되는데, 이때 보통 String을 json 형태로 변형해 줄때 eval(string) 이나 string.JSONparser 등의 형태로 변형을 해주게 된다. 
일반적인 상황에서는 별 무리 없이 잘 변환이 되지만, 국내에서는 Python 자체를 사용하는 경우가 매우 드문 것 같고, 더욱이 웹 프레임 워크로 Django를 이용하는 (특히 게임쪽)경우가 매우 드문 것 같다. 대부분의 Rest 통신을 해보면 String 정보가, 바로 써먹기 매우 난해한 경우가 대부분 이였는데, 특히 true,false 같은 bool형 변수, Python에서는 True,False 형태로 쓰기 때문에 true,false를 바로 변환하지 못한다. (이해가 좀 안된다.. 의미상으로 다르지 않을텐데.. 문법적으로 꼼꼼하신 Python이라 그런가...?) 또한 null 의경우에도 마찬가지.. Python 은 null 을 사용하지 않기 때문에 변환하지 못하게 에러난다.. None로 변환하여 작업해주어야 한다.
Rest 통신을 하게 되어 String을 JSON으로 변환 해야 하는 경우가 생긴다면 반드시 꼼꼼히 넘어오는 String을 확인해보고, 해당 언어에 변환시에 걸림이 있는 것은 없는지 상세히 살펴보아야 엄한 곳에서의 삽질을 막을 수 있다. C나 C++등의 언어에 비해 웹 서버사이드 언어들은 이런 광범위한 호환 범위를 위해 데이터 인코딩이라던지 문자열 파싱등에 탁월한 메서드를 많이 제공하고 있는 것 같다. Python에서는 replace 를 이용하여 String을 교체하여 작업해주면, 간단하게 패스 할 수 있다.
나와 같은 야매 플머들이여... 조금이라도 이 글이 도움이 되어 이런 허망한 곳에서 시간낭비를 한다던지, 맨땅에 해딩하는 일을 줄이자~ 
반응형