일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- PyQt5
- IOS
- port
- 다이어트
- PER
- ASP
- Excel
- PyQt
- MySQL
- 리눅스
- ubuntu
- pandas
- urllib
- flutter
- GIT
- sqlite
- 유니티
- python
- 날짜
- Unity
- 맛집
- javascript
- Linux
- tensorflow
- MS-SQL
- 함수
- swift
- node.js
- mssql
- 라즈베리파이
아미(아름다운미소)
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 |