json
라이브러리를 사용하여 JSON 파일을 읽거나, 데이터를 JSON 형식으로 저장할 수 있습니다.
다음 내용들에 대해서 어떻게 구현하는지 알아보겠습니다.
JSON 형식으로 파일로 저장
json 라이브러리는 파이썬의 dict, list 객체를 바로 JSON 파일로 저장할 수 있게 도와줍니다.
다음은 dict 객체를 JSON 파일로 저장하는 예제입니다.
import json
file_path = "./sample.json"
data = {}
data['posts'] = []
data['posts'].append({
"title": "How to get stroage size",
"url": "https://codechacha.com/ko/get-free-and-total-size-of-volumes-in-android/",
"draft": "false"
})
data['posts'].append({
"title": "Android Q, Scoped Storage",
"url": "https://codechacha.com/ko/android-q-scoped-storage/",
"draft": "false"
})
print(data)
with open(file_path, 'w') as outfile:
json.dump(data, outfile)
sample.json
파일을 출력해보면 다음과 같습니다.
$ cat sample.json
{"posts": [{"title": "How to get stroage size", "url": "https://codechacha.com/ko/get-free-and-total-size-of-volumes-in-android/", "draft": "false"}, {"title": "Android Q, Scoped Storage", "url": "https://codechacha.com/ko/android-q-scoped-storage/", "draft": "false"}]}
위의 sample.json 파일은 공백이 모두 제거되었기 때문에 보기 어렵습니다.
위의 코드에서 json.dump()
에 indent
옵션을 주면 보기 좋게 write가 됩니다.
with open(file_path, 'w') as outfile:
json.dump(data, outfile, indent=4)
indent 옵션을 적용한 결과는 다음과 같습니다.
{
"posts": [
{
"title": "How to get stroage size",
"url": "https://codechacha.com/ko/get-free-and-total-size-of-volumes-in-android/",
"draft": "false"
},
{
"title": "Android Q, Scoped Storage",
"url": "https://codechacha.com/ko/android-q-scoped-storage/",
"draft": "false"
}
]
}
JSON 파일 읽기
JSON 파일을 읽어서 dict 객체로 만들 수 있습니다.
다음은 sample.json
파일을 읽어서 dict로 가져오는 예제입니다.
import json
file_path = "./sample.json"
with open(file_path, "r") as json_file:
json_data = json.load(json_file)
print(json_data)
print("")
print(json_data['posts'])
print("")
print(json_data['posts'][0]['title'])
결과
{'posts': [{'title': 'How to get stroage size', 'url': 'https://codechacha.com/ko/get-free-and-total-size-of-volumes-in-android/', 'draft': 'false'}, {'title': 'Android Q, Scoped Storage', 'url': 'https://codechacha.com/ko/android-q-scoped-storage/', 'draft': 'false'}]}
[{'title': 'How to get stroage size', 'url': 'https://codechacha.com/ko/get-free-and-total-size-of-volumes-in-android/', 'draft': 'false'}, {'title': 'Android Q, Scoped Storage', 'url': 'https://codechacha.com/ko/android-q-scoped-storage/', 'draft': 'false'}]
How to get stroage size
기존 JSON 파일에 내용 추가해서 다시 저장
기존 JSON 파일을 읽고, 거기에 아이템을 하나 더 추가하고 다시 저장할 수도 있습니다.
다음은 기존 sample.json을 읽고, 거기에 리스트를 하나 추가하고 다시 저장하는 예제입니다.
import json
file_path = "./sample.json"
json_data = {}
with open(file_path, "r") as json_file:
json_data = json.load(json_file)
json_data['posts'].append({
"title": "How to parse JSON in android",
"url": "https://codechacha.com/ko/how-to-parse-json-in-android/",
"draft": "true"
})
with open(file_path, 'w') as outfile:
json.dump(json_data, outfile, indent=4)
sample.json
에 저장된 내용
{
"posts": [
{
"title": "How to get stroage size",
"url": "https://codechacha.com/ko/get-free-and-total-size-of-volumes-in-android/",
"draft": "false"
},
{
"title": "Android Q, Scoped Storage",
"url": "https://codechacha.com/ko/android-q-scoped-storage/",
"draft": "false"
},
{
"title": "How to parse JSON in android",
"url": "https://codechacha.com/ko/how-to-parse-json-in-android/",
"draft": "true"
}
]
}
참고
Loading script...
Related Posts
- Python - Yaml 파일 파싱하는 방법
- Python - 파일 내용 삭제
- Python - for문에서 리스트 순회 중 요소 값 제거
- Python - 두 리스트에서 공통 요소 값 찾기
- Python - 문자열 앞(뒤)에 0으로 채우기
- Python - 공백으로 문자열 분리
- Python - 중첩 리스트 평탄화(1차원 리스트 변환)
- Python - 16진수 문자열을 Int로 변환
- Python - 두 날짜, 시간 비교
- Python f-string으로 변수 이름, 값 쉽게 출력 (변수명 = )
- Python - nonlocal과 global 사용 방법
- Python 바다코끼리 연산자 := 알아보기
- Python - pip와 requirements.txt로 패키지 관리
- Python - 딕셔너리 보기 좋게 출력 (pprint)
- Python - Requests 사용 방법 (GET/POST/PUT/PATCH/DELETE)
- Python - 온라인 컴파일러 사이트 추천
- Python - os.walk()를 사용하여 디렉토리, 파일 탐색
- Python - 문자열 비교 방법
- Python - Text 파일 읽고 쓰는 방법 (read, write, append)
- Python - 리스트에서 첫번째, 마지막 요소 가져오는 방법
- Python - 두개의 리스트 하나로 합치기
- Python - 리스트의 마지막 요소 제거
- Python - 리스트의 첫번째 요소 제거
- Python 소수점 버림, 4가지 방법
- Python 코드 안에서 버전 확인 방법
- Python 소수점 반올림, round() 예제
- Python - 리스트 평균 구하기, 3가지 방법
- Python - bytes를 String으로 변환하는 방법
- Python - String을 bytes로 변환하는 방법
- Python 버전 확인 방법 (터미널, cmd 명령어)
- Python - 람다(Lambda) 함수 사용 방법
- Python - dict 정렬 (Key, Value로 sorting)
- Python - range() 사용 방법 및 예제
- Python - 리스트를 문자열로 변환
- Python - 문자를 숫자로 변환 (String to Integer, Float)