Python에서 json파일 다루기 (읽기, 쓰기, 수정)
C 드라이브에 아래와 같은 json 형식의 파일이 있다고 가정해보자
C:\test.json
{
"K5": {
"price": "5000",
"year": "2015"
},
"Avante": {
"price": "3000",
"year": "2014"
}
}
# json 파일 읽기
해당 파일을 읽기 위해서는 json 모듈을 임포트 한후, load함수를 통해 데이터를 가져올 수 있다.
import json
with open('C:\\test.json', 'r') as f:
json_data = json.load(f)
print(json.dumps(json_data) )
출력 :
{"K5": {"price": "5000", "year": "2015"}, "Avante": {"price": "3000", "year": "2014"}}
아래와 같이 들여쓰기를 통해 깔끔하게 출력하는 옵션도 있다.
print(json.dumps(json_data, indent="\t") )
출력
{
"K5": {
"price": "5000",
"year": "2015"
},
"Avante": {
"price": "3000",
"year": "2014"
}
}
# json 파일 출력하기
json 파일을 읽어들이면, 딕셔너리 형태로 json_data 변수에 저장된다.
해당 변수에 접근하여 특정 요소의 값을 출력할 수 있다.
접근 방법은 아래와 같다.
k5_price = json_data['K5']['price']
print(k5_price)
출력
5000
# json 파일 수정하기
값을 불러오는것 뿐만 아니라 쓰는것도 가능하다.
json_data['K5']['price'] = "7000"
print(json_data['K5']['price'])
출력
7000
위 코드를 통해 K5의 price를 수정해봤다.
여기서 json_data를 파일 형식으로 저장하면, json 파일 자체도 수정사항이 반영된 채로 저장이된다.
아래와 같이 해당 json 파일을 다시 저장해보고, 출력해보자.
with open('C:\\test.json', 'w', encoding='utf-8') as make_file:
json.dump(json_data, make_file, indent="\t")
with open('C:\\test.json', 'r') as f:
json_data = json.load(f)
print(json.dumps(json_data, indent="\t") )
출력문
{
"K5": {
"price": "7000",
"year": "2015"
},
"Avante": {
"price": "3000",
"year": "2014"
}
}
그럼 해당 파일이 수정된채로 저장된 것을 확인할 수 있다.
# json 파일 쓰기
프로그램 상에서 딕셔너리를 만들고, 이를 json 파일로 저장할 수도 있다.
import json
car_group = dict()
k5 = dict()
k5["price"] = "5000"
k5["year"] = "2015"
car_group["K5"] = k5
avante = dict()
avante["price"] = "3000"
avante["year"] = "2014"
car_group["Avante"] = avante
#json 파일로 저장
with open('C:\\test.json', 'w', encoding='utf-8') as make_file:
json.dump(car_group, make_file, indent="\t")
# 저장한 파일 출력하기
with open('C:\\test.json', 'r') as f:
json_data = json.load(f)
print(json.dumps(json_data, indent="\t") )
출력문 :
{
"K5": {
"price": "5000",
"year": "2015"
},
"Avante": {
"price": "3000",
"year": "2014"
}
}
'Python' 카테고리의 다른 글
[Python] 파이썬 일시정지 sleep 함수 사용법 (0) | 2018.12.23 |
---|---|
[Python] 파이썬에서 home 디렉토리 접근하기 (0) | 2018.12.23 |
[Python/Pyqt5] 윈도우 스크린 정 가운데에 띄우는 방법 (0) | 2018.12.23 |
[Python/pyqt] desinger를 통해만든 ui파일 py으로 변경해주는 명령어 (0) | 2018.12.23 |
PyQt에서 label 객체 실시간으로 변경하기 (0) | 2018.12.23 |