들어가기
이번 시간에는 또다른 직렬화 형식인 JSON에 대해 알아보도록 하겠습니다.
학습목표
JSON의 특성을 이해하고 파이썬으로 JSON 데이터를 추출할 수 있다.
핵심 키워드
- JSON
학습 영상
들어가기
이번 시간에는 또다른 직렬화 형식인 JSON에 대해 알아보도록 하겠습니다.
학습목표
JSON의 특성을 이해하고 파이썬으로 JSON 데이터를 추출할 수 있다.
핵심 키워드
학습 영상
학습 내용
JSON(JavaScript Object Notation)
JSON은 XML보다 더 자주 사용되는 데이터 포맷입니다. 이 코드는 이전 시간에 XML로 실행했던 것과 정확히 같은 내용의 코드입니다. 데이터가 XML 형식에서 JSON 형식으로 바뀐 것을 제외하면 말입니다.
JSON은 파이썬에서의 딕셔너리와 굉장히 비슷하기 때문에 데이터를 읽어온 후 딕셔너리로 접근할 수 있습니다.
import json
data = '''{
"name" : "Chuck",
"phone" : {
"type" : "intl",
"number" : "+1 734 303 4456"
},
"email" : {
"hide" : "yes"
}
}'''
info = json.loads(data)
print('Name:',info["name"])
print('Hide:',info["email"]["hide"])
#Name: Chuck
#Hide: yes
이와 같이 여러 개의 데이터를 읽어올 경우 리스트에 딕셔너리가 포함된 형태로 읽어집니다.
import json
input = '''[
{ "id" : "001",
"x" : "2",
"name" : "Chuck"
} ,
{ "id" : "009",
"x" : "7",
"name" : "Chuck"
}
]'''
info = json.loads(input)
print(info)
print('User count:', len(info))
for item in info:
print('Name', item['name'])
print('Id', item['id'])
print('Attribute', item['x'])
# [{'id': '001', 'x': '2', 'name': 'Chuck'}, {'id': '009', 'x': '7', 'name': 'Chuck'}]
# User count: 2
# Name Chuck
# Id 001
# Attribute 2
# Name Chuck
# Id 009
# Attribute 7
comment
21 02 05
20200911
감사합니다.
20200430
20. 04. 28. 수강완료~
감사합니다.
앞에서 고생고생해서 이해하고 넘어왔다 싶으면 다음에 더쉬운방법 알켜줌ㅋㅋ
아래처럼 해서 돌렸는데 계속 에러가ㅠㅠㅠ
뭔지 모르겠어요
import json
data='''
{
"name" : "chuck",
"phone" : {
"type" : "intl"
"number" : "+1 734 303 4456"
},
"email" : {
"hide" : "yes"
}
}'''
info =json.loads(data)
print('Name:', info["name"])
print('Hide:', info["email"]["hide"])
Traceback (most recent call last):
File "C:\Users\hyeij\Desktop\py4e\chapter_13\jsbasics1.py", line 15, in <module>
info =json.loads(data)
File "C:\Users\hyeij\AppData\Local\Programs\Python\Python37-32\lib\json\__init__.py", line 348, in loads
return _default_decoder.decode(s)
File "C:\Users\hyeij\AppData\Local\Programs\Python\Python37-32\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Users\hyeij\AppData\Local\Programs\Python\Python37-32\lib\json\decoder.py", line 353, in raw_decode
obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting ',' delimiter: line 6 column 9 (char 73)
xml/json를 이렇게 같이배우는 좋은 경험이네요!
피부로 와닿는 강의!
이 교수님은 마술사시네영 xml 복잡한걸 하다가 json 보니.. 오 이런 이렇게나?? 의지가 생기네여 ㅋㅋ
XML이 속성 이름과 속성 값, 항목의 내용(text)을 구분해서 각각 표시한다면,
JSON은 속성의 값도, text도 '값'으로 동일하게 보는 것 같네요.