JSON
- JSON → 서로 다른 프로그램/서비스/어플 사이에서 데이터를 주고받을 때 사용하는 약식 중 하나
- 어떤 값은 뭐에요
- +1개 아니라 여러개
- 파이썬 리스트, dict 상당히 유사함
- 실제 JSON 데이터 : 문자열로 작성된 text
- 실제 문자열 작성하는 약식으로 파이썬 리스트/ dict에 대응
- re 패키지를 활용해서 추출하면 되는데.. 규격화/패키지화 → json 패키지 (anaconda/colab 기본 설치된 패키지)
- 굳이 정규식을 안 써도, 파이썬 리스트/dict로 접근이 가능하게 변경
- 값에 대한 접근을 정규식 대신에 “정수인덱스” or “키”
import json
json_data1= """{
"color":"red",
"value":"$100"
}"""
json_data1
#{\\n "color":"red",\\n "value":"$100"\\n}
json_data1["color"]
#TypeError: string indices must be integers, not 'str'
temp = json.loads( json_data1)
temp
#{'color': 'red', 'value': '$100'}
type(temp)
#dict
type(json_data1)
#str
temp["color"]
#'red'
json_data2 = """{
"id" : "0001",
"type" : "donut",
"name" : "Cake",
"ppu" : 0.55,
"groups" : {
"group" : [
{"id":"1001", "type":"Regular"},
{"id":"1002", "type":"Choco"},
{"id":"1003", "type":"Cream"}
]
},
"topping" : [
{"id":"5001", "type":"None"},
{"id":"5002", "type":"Sugar"},
{"id":"5003", "type":"Choco"}
]
}
"""
json_data2
#{\\n "id" : "0001",\\n "type" : "donut",\\n "name" : "Cake",\\n "ppu" : 0.55,\\n "groups" : {\\n "group" : [\\n {"id":"1001", "type":"Regular"},\\n {"id":"1002", "type":"Choco"},\\n {"id":"1003", "type":"Cream"}\\n ]\\n },\\n "topping" : [\\n {"id":"5001", "type":"None"},\\n {"id":"5002", "type":"Sugar"},\\n {"id":"5003", "type":"Choco"}\\n ]\\n}\\n
data = json.loads(json_data2)
data
#{'id': '0001',
#'type': 'donut',
#'name': 'Cake',
#'ppu': 0.55,
#'groups': {'group': [{'id': '1001', 'type': 'Regular'},
# {'id': '1002', 'type': 'Choco'},
# {'id': '1003', 'type': 'Cream'}]},
#'topping': [{'id': '5001', 'type': 'None'},
# {'id': '5002', 'type': 'Sugar'},
# {'id': '5003', 'type': 'Choco'}]}
#JSON 양식으로 작성된 문자열에 대해서
# 파이썬의 자료형으로 변환해주는 역할 : json패키지
# --> 내가 원하는 정보에 대한 접근을 정규식이 아니라...
# 키값, 정수인덱스로 접근 할 수 있다!!!
type(data)
#dict
data.keys()
#dict_keys(['id', 'type', 'name', 'ppu', 'groups', 'topping'])
# 받은 데이터 중에서 id값은 얼마인가요?
data["id"]
#'0001'
# 받은 데이터 중에서 topping 항목 중에서
# 처음 토핑 항목의 id 값은 얼마인가요?
data["topping"][0]["id"]
#'5001'
#받은 데이터 중에서 2번째 group의 type은 뭔가요?
data["groups"]["group"][1]["type"]
#'Choco'
json으로 되어있는 정보를 파이썬으로 접근하기 위해서는
- 순차적으로 한 depth씩 접근을 해야함
- 하나씩 보면서.. 순차적으로 맞춰서 진행을 해야됨: 정수/key
- 눈에 보이는 대로 하나씩 처리하면 됨
++접속에 대한 부분
- json 패키지 사용해서 필요한 정보를 접근
- ⇒ DF에 어떻게 쌓을지/기록할지
- 데이터 크롤링!!
'데이터분석 > Pandas' 카테고리의 다른 글
| [Python] Pandas 06 _ kobis_api_xml (0) | 2025.08.20 |
|---|---|
| [Python] pandas 05_kobis_api_json (0) | 2025.08.19 |
| [Python] Pandas 03 _ pandas_2D_DataFrame (3) | 2025.08.19 |
| [Python] Pandas 02 _pandas_1D_Series (2) (0) | 2025.08.19 |
| [Python] Pandas 02 _pandas_1D_Series (1) (4) | 2025.08.18 |