-
[JSon] 파이썬에서 Json 형식 데이터 처리하기 (가져오기/내보내기/업데이트)개발지식 아카이브/Python 2019. 5. 14. 00:54
Python 2.x에서는 Dictionary에 한글 데이터를 저장하는 것을 지원하지 않는다. 따라서 Json파일을 외부에 따로 만든 후, 메인 스크립트에서 해당 제이슨파일을 임포트하여 사용하는 것을 추천한다. Python 3부터는 Dictionary에 직접 저장하는 것도 가능하다.
1. 가져오기 IMPORT
# json_python.py json_dict = { 'category': 'food', 'name': 'mcdonalds', 'price': '1000' } import json_python import json json_dict = json.loads(json.dumps(json_python.json_dict)) print (json_dict) {u'category': u'food', u'price': u'1000', u'name': u'mcdonalds'}
2. Json add & update
1.1 Json list에 데이터 행을 추가
# init json_dict = { 'category': 'food', 'name': 'mcdonalds', 'price': '1000' } # add an element to the existing list row= { 'category': 'food', 'name': 'lotteria', 'price': '1500' } json_dict = [json_dict, row] # result print(json_dict) [{u'category': u'food', u'price': u'1000', u'name': u'mcdonalds'}, {'category': 'food', 'price': '1500', 'name': 'lotteria'}]
1.2 Json map에 데이터 행을 추가
json_dict = { 'mcdonalds': { 'category': 'food', 'price': '1000' } } row = { 'lotteria': { 'category': 'food', 'price': '1500' } } json_dict.update(row) {'lotteria': {'category': 'food', 'price': '1500'}, 'mcdonalds': {'category': 'food', 'price': '1000'}}
2) Json Map에 저장된 json 행의 특정 키의 값을 바꾸고 싶다.
json_dict = {'lotteria': {'category': 'food', 'price': '1500'}, 'mcdonalds': {'category': 'food', 'price': '1000'}} json_dict['mcdonalds']['price']='0' json_dict {'lotteria': {'category': 'food', 'price': '1500'}, 'mcdonalds': {'category': 'food', 'price': '0'}}
3) 특정 키 값 아래에 자식 객체 업데이트하기
json_dict = {'lotteria': {'category': 'food', 'price': '1500'}, 'mcdonalds': {'category': 'food', 'price': '1000'}} json_dict['lotteria'].update({'location': {'prefecture': '경기도', 'city': '서울', 'zipcode': 15541}}) print (json_dict) {'lotteria': {'category': 'food', 'price': '1500', 'location': {'city': 'seoul', 'prefecture': 'gyounggido', 'zipcode': 15541}}, 'mcdonalds': {'category': 'food', 'price': '1000'}}
'lotteria' 객체 아래에 'location'이라는 키가 없어 새로 추가가 되었다. 이미 있을 경우, 기존 값은 완전히 사라지고 input에 의해 대체(replace)되므로 주의. key값을 지정하여 업데이트하면 해당 키 아래에 자식을 계속 추가해 나갈 수 있다.
3. 내보내기 EXPORT
import json # Default with open('fileName.json', 'w') as outfile: json.dump(json_dict, outfile) # 원하는 인코딩에 따라 옵션 커스터마이징 가능. 한글을 그대로 저장하고 싶어 다음의 옵션을 넣었다. with open('krVerFile.json', 'w') as outfile: json.dump(json_dict, outfile, ensure_ascii=False)
참고)
Json 파일을 표준 문법에 맞춰 포맷팅해주는 사이트
'개발지식 아카이브 > Python' 카테고리의 다른 글
[파이썬] *args, **kwargs를 이용해 메소드 축약 작성하는 법 (0) 2019.09.24 [파이썬] 자료구조 Comprehension : 람다형 자료구조 코딩 (0) 2019.09.22 [파이썬 주식 분석] 매수 적정 PER 구하기 (당기순이익 증감 예상이용) (0) 2019.08.04 [파이썬/Python] mysql connector 라이브러리로 MySql 연동하기 (1) 2019.07.24 [파이썬/Python] 티켓팅 자동화 매크로 개발해보기 (30) 2019.07.01