Notice
Recent Posts
Recent Comments
Link
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

행복한 개구리

Python 공부내용 21.10.27. Python - JSON 본문

Python/공부내용

Python 공부내용 21.10.27. Python - JSON

HappyFrog 2021. 10. 27. 18:48

W3Schools의 Python Tutorial을 보며 해석하고 정리한 글입니다.

오역이 존재할 수 있습니다

저도 파이썬은 처음이니 가볍게 봐주세요 :D 

W3Schools


파이썬 JSON

JSON은 데이터를 저장하고 변환하는 문법입니다.

 

JSON은 텍스트이며, JavaScript 객체표기법에 따라 작성됩니다.

 

파이썬에서의 JSON

파이썬은  json  이라고 불리는 빌트인 패키지를 갖고있으며 이것은 JSON데이터로 작업을 할 때 사용됩니다.

import json

 

JSON파싱 - JSON에서 Python으로 변환하기

만약 당신이 JSON형식의 문자열을 가지고있따면, 당신은  json.loads()  메서드를 통해서 파싱할 수 있습니다.

 

참고 : 결괏값은 Python의 딕셔너리 형식으로 반환됩니다.

import json

# some JSON:
# JSON 객체
x = '{ "name":"John", "age":30, "city":"New York"}'

# parse x:
# x 파싱하기
y = json.loads(x)
print(y)

# the result is a Python dictionary
# 결괏값은 파이썬 딕셔너리 형태
print(y["age"])

▲ 결괏값

 

파이썬에서 JSON으로 변환하기

당신이 파이썬 오브젝트를 JSON형식으로 변환하고 싶다면  json.dumps()  메서드를 사용하면 됩니다.

import json

# a Python object(dict):
# 파이썬 객체(딕셔너리 형식)
x = {
    "name" : "John",
    "age" : 30,
    "city" : "New York"
}

# convert into JSON:
# JSON으로 변환
y = json.dumps(x)

# the result is a JSON string:
# JSON문자열로 나온 결괏값
print(y)

▲ 결괏값

 

당신은 아래의 데이터 타입인 객체들을 JSON문자열로 변환할 수 있습니다.

  • dict
  • list
  • tuple
  • string
  • int
  • float
  • True
  • False
  • None
import json

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에서 다음의 형식을 갖게됩니다.

출처 W3Schools

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}
  ]
}

print(json.dumps(x))

▲ 결괏값

 

결괏값 서식 만들기

위 예시에서는 JSON문자열을 출력했지만 줄바꿈과 들여쓰기 없이는 가독성이 떨어집니다.

 

 json.dumps()  메서드는 결괏값의 가독성을 높여줄 수 있는 매개변수를 가집니다.

# indent 매개변수에서 indent의 개수를 정의하기
json.dumps(x, indent = 4)

▲ 결괏값 // 확실히 가독성이 좋아집니다.

 

당신은 따옴표도 정의할 수 있습니다. 기본값은 ", " 와 ": " 입니다. 반점 + 공백으로 각 객체들을 구분하고 콜론 + 공백으로 키와 밸류를 구분한다는 뜻입니다.

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}
  ]
}

print(json.dumps(x, indent = 4, separators=(". ", " = ")))

▲ 결괏값 // 구분자가 달라졌습니다.

 

결괏값 정렬하기

 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}
  ]
}

print(json.dumps(x, indent = 4, sort_keys=True))

▲ 결괏값 // 키의 알파벳순으로 정렬되어 반환됩니다.