| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- ubuntu
- 함수
- 날짜
- javascript
- 맛집
- Unity
- MS-SQL
- Linux
- PER
- swift
- tensorflow
- port
- Excel
- python
- GIT
- 유니티
- PyQt
- urllib
- IOS
- 라즈베리파이
- pandas
- 리눅스
- 다이어트
- PyQt5
- MySQL
- sqlite
- ASP
- mssql
- node.js
- flutter
아미(아름다운미소)
Python JSON 데이타 본문
1. JSON
JSON은 JavaScript Object Notation의 약자로서 JavaScript 문법에 영향을 받아 개발된 Lightweight한 데이타 표현 방식입니다. JSON은 데이타를 교환하는 한 포맷으로서 그 단순함과 유연함 때문에 널리 사용되고 있습니다. 특히 웹 브라우져와 웹서버 사이에 데이타를 교환하는데 많이 사용되고 있습니다. 가장 많이 사용되는 JSON 포맷은 Key-Value Pair의 컬렉션입니다.
Python은 기본적으로 JSON 표준 라이브러리(json)를 제공하고 있는데, "import json" 을 사용하여 JSON 라이브러리를 사용할 수 있습니다. (주: Python 2.6 이상).
JSON 라이브러리를 사용하면, Python 타입의 Object를 JSON 문자열로 변경할 수 있으며(JSON 인코딩), 또한 JSON 문자열을 다시 Python 타입으로 변환할 수 있습니다. (JSON 디코딩).
2. JSON 인코딩
Python Object (Dictionary, List, Tuple 등) 를 JSON 문자열로 변경하는 것을 JSON Encoding 이라 부릅니다. JSON 인코딩을 위해서는 우선 json 라이브러리를 import 한 후, json.dumps() 메서드를 써서 Python Object를 문자열로 변환하면 됩니다.
아래 코드는 customer 라는 Python Dictionary 객체를 JSON 문자열로 인코딩하는 예입니다. 결과물 jsonString은 JSON 표현을 갖는 문자열(str 타입)입니다.
import json
# 테스트용 Python Dictionary
customer = {
'id': 123456,
'name': '홍길동',
'history': [
{'date': '2017-03-11', 'item': 'iPhone'},
{'date': '2018-02-01', 'item': 'iPad'},
]
}
# JSON 인코딩
jsonString = json.dumps(customer)
# 문자열 출력
print(jsonString)
print(type(jsonString)) # class str
위의 코드를 실행하면 JSON 문자열이 한 줄로 길게 표현됨을 알 수 있습니다. 이렇게 축약된 JSON 문자열은 다른 컴퓨터나 네트워크 상에 보낼 때 유용하지만, 화면에 표시할 필요가 있을 경우는 읽기가 불편하죠. JSON 문자열을 읽기 편하게 할 필요가 있을 경우에는, 아래와 같이 "indent" 옵션을 json.dumps() 메서드 안에 지정하면 된다. 코드 아래는 Identation 이 사용된 JSON 문자열 표현이다.
jsonString = json.dumps(customer, indent=4)
print(jsonString)
{
"history": [
{
"date": "2017-03-11",
"item": "iPhone"
},
{
"date": "2018-02-01",
"item": "iPad"
}
],
"id": 123456,
"name": "홍길동"
}
import json
# 테스트용 JSON 문자열
jsonString = '{"name": "홍길동", "id": 123456, "history": [{"date": "2017-03-11", "item": "iPhone"}, {"date": "2018-02-01", "item": "iPad"}]}'
# JSON 디코딩
dict = json.loads(jsonString)
# Dictionary 데이타 체크
print(dict['name'])
for h in dict['history']:
print(h['date'], h['item'])
'랭귀지 > python' 카테고리의 다른 글
| 파이썬 - URLLIB2 세트 프록시 (0) | 2018.04.22 |
|---|---|
| Python을 사용하여 XML 파싱하기 (0) | 2018.03.04 |
| python file download(urllib, urllib2, tqdm) (0) | 2018.01.26 |
| 유튜브 (YouTube) 동영상 다운로드하기 (youtube-dl package를 이용) (0) | 2018.01.24 |
| 파이썬(python) 스크린 캡쳐(pyscreenshot) (0) | 2018.01.23 |