Python과 JavaScript는 각각 데이터를 저장하는 방식이 다릅니다. Python은 딕셔너리(dict)를 사용하고, JavaScript는 객체(Object)를 사용하는데, 두 언어 간에 데이터를 주고받으려면 공통의 중간 형식이 필요합니다.
가장 널리 사용되는 중간 형식은 바로 JSON(JavaScript Object Notation)입니다. JSON은 가볍고 단순한 데이터 교환 형식으로, 웹 개발에서 두 언어를 연결하는 표준적인 방법으로 자리 잡았습니다.
Python에서 딕셔너리를 JSON 문자열로 변환하기
Python에서는 json.dumps() 함수를 사용하여 딕셔너리를 JSON 문자열로 변환할 수 있습니다. 이렇게 변환된 문자열은 JavaScript 쪽으로 안전하게 전달할 수 있습니다.
import json
my_dict = {
'foo': 42,
'bar': {
'baz': "Hello",
'poo': 124.2
}
}
my_json = json.dumps(my_dict)
print(my_json)실행 결과
'{"foo": 42, "bar": {"baz": "Hello", "poo": 124.2}}'JSON 문자열을 다시 Python 딕셔너리로 변환하기
반대로 JSON 문자열을 받아서 Python 딕셔너리로 되돌리려면 json.loads() 함수를 사용하면 됩니다. 변환된 딕셔너리는 일반적인 방식대로 키를 통해 값에 접근할 수 있습니다.
import json
my_str = '{"foo": 42, "bar": {"baz": "Hello", "poo": 124.2}}'
my_dict = json.loads(my_str)
print(my_dict['bar']['baz'])실행 결과
Hello
JavaScript 쪽에서는 어떻게 처리할까요?
흥미로운 점은 JavaScript 측에서는 별도의 변환 작업이 거의 필요하지 않다는 것입니다. JSON이 JavaScript Object Notation, 즉 자바스크립트 객체 표기법의 약자이기 때문입니다. JavaScript는 JSON 구조를 객체로 자연스럽게 인식하고 처리합니다.
다만 데이터가 문자열 형태로 전달된 경우에는 JSON.parse() 메서드를 사용해 실제 객체로 변환해야 합니다.
const jsonString = '{"foo": 42, "bar": {"baz": "Hello", "poo": 124.2}}';
const obj = JSON.parse(jsonString);
console.log(obj.bar.baz); // Hello정리
두 언어 간 데이터 교환의 핵심은 JSON을 중간 다리로 활용하는 것입니다. Python에서는 json.dumps()와 json.loads()로 직렬화와 역직렬화를 수행하고, JavaScript에서는 JSON.parse()와 JSON.stringify()를 사용하면 됩니다. 이 기본 원리만 익히면 API 통신, 파일 입출력 등 다양한 상황에서 손쉽게 데이터를 주고받을 수 있습니다.