Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 바이트 배열을 JSON 형식으로 변환하는 방법

Python에서 바이트(bytes) 객체를 JSON 형식으로 변환하려면 먼저 바이트를 일반 문자열로 디코딩해야 합니다. 문자열 클래스의 decode() 메서드를 사용하면 원하는 인코딩 방식(예: UTF-8)을 지정하여 손쉽게 처리할 수 있습니다.

1. 바이트를 문자열로 디코딩하기

b''로 표현된 값은 바이트 문자열을 의미합니다. 이를 decode('utf-8')로 디코딩하면 일반 문자열이 됩니다.

my_str = b"Hello"  # b는 바이트 문자열을 의미합니다
new_str = my_str.decode('utf-8')  # utf-8 인코딩으로 디코딩
print(new_str)

실행 결과

Hello

2. 문자열을 JSON 형식으로 변환하기

바이트가 문자열로 변환되면, 표준 라이브러리인 json 모듈의 dumps() 메서드를 사용하여 해당 문자열을 JSON 형식의 문자열로 직렬화할 수 있습니다.

import json

my_str = b'{"foo": 42}'  # b는 바이트 문자열을 의미합니다
new_str = my_str.decode('utf-8')  # utf-8 인코딩으로 디코딩

d = json.dumps(new_str)
print(d)

실행 결과

"{\"foo\": 42}"

참고: JSON 문자열을 파이썬 객체로 변환하기

JSON 형식의 데이터를 단순한 문자열이 아니라 파이썬 dict 객체로 다루고 싶다면, 디코딩 후 json.loads()를 사용하세요. 참고로 json.loads()는 바이트 객체도 직접 받을 수 있습니다.

import json

my_bytes = b'{"foo": 42}'
data = json.loads(my_bytes)
print(data)         # {'foo': 42}
print(data['foo'])  # 42

정리하면, 바이트 → decode() → 문자열 → json.dumps() → JSON 문자열 순서로 처리하면 되며, 역방향으로는 json.loads()를 통해 JSON 데이터를 파이썬 객체로 변환할 수 있습니다.