Python과 JavaScript는 딕셔너리(사전) 데이터를 서로 다른 방식으로 표현합니다. 따라서 두 언어 사이에서 데이터를 주고받으려면 공통의 중간 표현(intermediate representation)이 필요합니다.
가장 널리 사용되는 중간 표현은 JSON(JavaScript Object Notation)입니다. JSON은 간단하고 가벼운 데이터 교환 형식으로, Python의 딕셔너리 구조와 JavaScript의 객체 구조를 거의 그대로 매핑할 수 있어 두 환경 간 데이터 전송에 이상적입니다.
1. Python에서 json.dumps()로 딕셔너리를 JSON 문자열로 변환
Python의 json.dumps() 함수는 딕셔너리(dict)를 JSON 형식의 문자열로 직렬화(serialization)합니다. 이 문자열은 네트워크를 통해 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}}'2. Python에서 json.loads()로 JSON 문자열을 다시 딕셔너리로 변환
반대로 json.loads() 함수를 사용하면 JSON 문자열을 역직렬화(deserialization)하여 다시 Python 딕셔너리로 되돌릴 수 있습니다.
예제
import json
my_str = '{"foo": 42, "bar": {"baz": "Hello", "poo": 124.2}}'
my_dict = json.loads(my_str)
print(my_dict['bar']['baz'])출력 결과
Hello
3. JavaScript 쪽에서의 처리
JavaScript 쪽에서는 특별한 변환 작업이 필요하지 않습니다. JSON은 이름 그대로 'JavaScript Object Notation', 즉 JavaScript 객체 표기법을 의미하기 때문에, JavaScript는 JSON 구조를 객체(object)로 자연스럽게 다룰 수 있습니다.
다만, 데이터가 문자열 형태로 전달된 경우에는 내장 함수인 JSON.parse()를 사용해 문자열을 JavaScript 객체로 변환하면 됩니다.
예제
const jsonString = '{"foo": 42, "bar": {"baz": "Hello", "poo": 124.2}}';
const obj = JSON.parse(jsonString);
console.log(obj.bar.baz); // Hello정리
Python 딕셔너리를 JavaScript로 전달할 때는 json.dumps()로 직렬화하고, 반대 방향에서는 json.loads()(Python) 또는 JSON.parse()(JavaScript)로 역직렬화하면 됩니다. JSON이라는 공통 형식을 활용하면 두 언어 간 복잡한 중첩 데이터도 손쉽게 주고받을 수 있습니다.