JSON은 데이터를 저장하고 교환하기 위한 구문이다.
JSON은 자바스크립트 객체 표기법으로 작성된 텍스트이다.
파이썬 JSON
파이썬에는 json이라는 패키지가 내장되어 있어 JSON 데이터와 함께 작동할 수 있다.
import json |
파이썬 json 파싱 - json에서 파이썬으로 변환
JSON 문자열이 있는 경우 json.loads() 메서드를 사용하여 구문 분석할 수 있다.
import json x = '{ "name":"John", "age":30, "city":"New York"}' print("x : ", x) # parse x: y = json.loads(x) print("y : ", y) # the result is a Python dictionary: print("y[age] : ", y["age"]) |
위의 코드를 실행하면 아래 그림과 같다.
파이썬에서 json 변환
파이썬 객체가 있다면 json.dumps() 메서드를 사용하여 JSON 문자열로 변환할 수 있다.
import json x = { "name": "John", "age": 30, "city": "New York" } print("dict x : ", x) y = json.dumps(x) print("json.dumps(x) : ", y) |
위의 코드를 실행하면 아래 그림과 같다.
다음 유형의 Python 개체를 JSON 문자열로 변환할 수 있다:
- dict
- list
- tuple
- string
- int
- float
- True
- False
- None
Python 개체를 JSON 문자열로 변환하고 값을 인쇄다:
import json print("python json.dumps() 파이썬 개체") print(json.dumps({"name": "John", "age": 30})) print(json.dumps(["apple", "bananas"])) print(json.dumps(("apple", "bananas"))) print(json.dumps("hello")) print(json.dumps(42)) print(json.dumps(31.76)) print(json.dumps(True)) print(json.dumps(False)) print(json.dumps(None)) |
위의 코드를 실행하면 아래 그림과 같다.
Python에서 JSON으로 변환하면 Python 개체는 JSON(JavaScript)과 동등한 수준으로 변환된다:
파이썬 | JSON |
dict | Object |
list | Array |
tuple | Array |
str | String |
int | Number |
float | Number |
True | true |
False | false |
None | null |
모든 법적 데이터 유형을 포함하는 Python 개체 변환:
import json x = { "name": "John", "age": 30, "married": True, "divorced": False, "children": ("Ann","Billy"), "pets": None, "cars": [ {"model": "BMW 230", "mpg": 27.5}, {"model": "Ford Edge", "mpg": 24.1} ] } # convert into JSON: y = json.dumps(x) # the result is a JSON string: print(y) |
위의 코드를 실행하면 아래 그림과 같다.
파이썬 결과 포맷
위의 예제는 JSON 문자열을 인쇄하지만 들여쓰기와 줄 바꿈이 없이 읽기가 매우 쉽지 않다.
json.dumps() 메서드에는 결과를 읽기 쉽게 하기 위한 매개 변수가 있다:
들여쓰기 매개변수를 사용하여 들여쓰기 수를 정의한다:
import json x = { "name": "John", "age": 30, "married": True, "divorced": False, "children": ("Ann","Billy"), "pets": None, "cars": [ {"model": "BMW 230", "mpg": 27.5}, {"model": "Ford Edge", "mpg": 24.1} ] } # use four indents to make it easier to read the result: print(json.dumps(x, indent=4)) |
위의 코드를 실행하면 아래 그림과 같다.
구분자를 정의할 수도 있는데, 기본값은 (", ", ": ")"입니다. 이는 쉼표와 공백을 사용하여 각 개체를 구분하고, 값에서 키를 구분하는 콜론과 공백을 사용하는 것을 의미한다:
separators 파라미터를 사용하여 기본 separator를 변경한다:
import json x = { "name": "John", "age": 30, "married": True, "divorced": False, "children": ("Ann","Billy"), "pets": None, "cars": [ {"model": "BMW 230", "mpg": 27.5}, {"model": "Ford Edge", "mpg": 24.1} ] } # use . and a space to separate objects, and a space, a = and a space to separate keys from their values: print(json.dumps(x, indent=4, separators=(". ", " = "))) |
위의 코드를 실행하면 아래 그림과 같다.
파이썬 json 결과 순서 정하기
json.dumps() 메서드에는 결과의 키 순서를 지정하는 매개 변수가 있다:
sort_keys 매개 변수를 선택하여 결과를 정렬할지 여부를 지정한다:
import json x = { "name": "John", "age": 30, "married": True, "divorced": False, "children": ("Ann","Billy"), "pets": None, "cars": [ {"model": "BMW 230", "mpg": 27.5}, {"model": "Ford Edge", "mpg": 24.1} ] } # sort the result alphabetically by keys: print(json.dumps(x, indent=4, sort_keys=True)) |
위의 코드를 실행하면 아래 그림과 같다.
지금까지 파이썬 json 활용하는 방법에 대해서 살펴보았다.
json을 파이썬으로 변환하거나 파이썬 데이터를 json으로 변환하는 방법 및 세부 표시하는 방법으로 indent, sort_keys 등에 대해서 살펴보았다.
꼭 손으로 눈으로 머리로 익히며 실습하기를 바란다.
모두 화이팅입니다.!!!
출처 : 이 글의 출처는 w3schools사이트를 참고하였으며 필자가 추가하여 정리한 글입니다.
'파이썬 > 파이썬기본문법' 카테고리의 다른 글
파이썬 RegEx-2 (split(), sub()) (0) | 2023.11.24 |
---|---|
파이썬 RegEX - (findall(), search()) (1) | 2023.11.23 |
파이선 math (1) | 2023.11.21 |
파이썬 datetime (1) | 2023.11.20 |
파이썬 모듈(modules) (0) | 2023.11.19 |
댓글