-
Notifications
You must be signed in to change notification settings - Fork 0
2.20. 내용정리: 23일차
흔한 찐따 edited this page Apr 9, 2022
·
4 revisions
- JSON(JavaScript Object Notation) 은 속성-값 쌍 또는 Key-Value 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다.
- 비동기 브라우저/서버 통신 (AJAX)을 위해, 넓게는 XML(AJAX가 사용)을 대체하는 주요 데이터 포맷이다.
- 특히, 인터넷에서 자료를 주고받을 때 그 자료를 표현하는 방법으로 알려져 있다.
- 자료의 종류에 큰 제한은 없으며, 특히 컴퓨터 프로그램의 변수 값을 표현하는 데 적합하다.
- 본래는 자바스크립트 언어로부터 파생되어 자바스크립트의 구문 형식을 따르지만 언어 독립형 데이터 포맷이다.
- 즉, 프로그래밍 언어나 플랫폼에 독립적이므로, 구문 분석 및 JSON 데이터 생성을 위한 코드는
C
,C++
,C#
,JAVA
,JavaScript
,Perl
,Python
등 수많은 프로그래밍 언어에서 쉽게 이용할 수 있다.
- 구조는 다음과 같이 Key-Value 쌍을 갖는 구조로 되어있다.
-
Key는 고유의
string
, Value는object
,number
,boolean(true, false)
,string
,array
,null
이 올 수 있다.
{
"name": "흔한 찐따",
"age": 28,
"blog": "찐따 격리소"
}
- JSON은 텍스트로 이루어져 있으므로, 사람과 기계 모두 읽고 쓰기 쉽다.
- 프로그래밍 언어와 플랫폼에 독립적이므로, 서로 다른 시스템간에 객체를 교환하기에 좋다.
- 이런 특성은 자바스크립트를 자주 사용하는 웹 환경에서 유리하다.
- 파이썬 표준 라이브러리 문서인 json 문서를 참고하면 된다.
-
import json
을 사용하여 JSON 라이브러리를 사용할 수 있다. - JSON 라이브러리를 사용하면, 파이썬 타입의
Object
를 JSON 문자열로 변경할 수 있다. (JSON 인코딩) - 또한 JSON 문자열을 다시 파이썬 타입으로 변환할 수 있다. (JSON 디코딩)
기본적으로 다음 객체와 형을 지원한다.
파이썬 | JSON |
---|---|
dict |
object |
list , tuple
|
array |
str |
string |
int , float , int 와 float 에서 파생된 열거형 |
number |
True |
true |
False |
false |
None |
null |
아래의 예시는 기본 파이썬 객체 계층 구조 인코딩의 예시이다.
import json
# 결과: '["foo", {"bar": ["baz", null, 1.0, 2]}]'
a = json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])
print(a)
# 결과: "\"foo\bar"
print(json.dumps("\"foo\bar"))
# 결과: "\u1234"
print(json.dumps('\u1234'))
# 결과: "\\"
print(json.dumps('\\'))
# 결과: {"a": 0, "b": 0, "c": 0}
print(json.dumps({"c": 0, "b": 0, "a": 0}, sort_keys=True))
저장된 json
파일을 불러온 다음, 파이썬의 dict
타입으로 바꾸려면 다음과 같이 json.loads()
함수를 통해 불러올 수 있다.
import json
with open('test.json') as file:
data = json.loads(file)
print(data)