본문 바로가기
파이썬/파이썬기본문법

파이썬 JSON

by flycoding 2023. 11. 22.
반응형

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 to 파이썬 변환 json.loads() 활용 예제

 

파이썬에서 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)

위의 코드를 실행하면 아래 그림과 같다.

파이썬 json.dumps() 파이선에서 json 변환 활용 예제

 

다음 유형의 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))

위의 코드를 실행하면 아래 그림과 같다.

파이썬 json.dumps() 파이썬 개체

 

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() 활용 예제

 

파이썬 결과 포맷

위의 예제는 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))

위의 코드를 실행하면 아래 그림과 같다.

파이썬 json.dumps() indent 들여쓰기 활용 예제

 

구분자를 정의할 수도 있는데, 기본값은 (", ", ": ")"입니다. 이는 쉼표와 공백을 사용하여 각 개체를 구분하고, 값에서 키를 구분하는 콜론과 공백을 사용하는 것을 의미한다:

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.dumps() seperator 구분자 활용 예제

 

파이썬 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.dumps() sort_keys 정렬 활용 예제

 

지금까지 파이썬 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

댓글