Python에서 파일에 JSON 쓰기
JSON은 가볍고 사람이 읽을 수있는 파일 형식으로 업계에서 많이 사용됩니다. JSON은JavaScript Object Notation
을 의미합니다. 이름에서 알 수 있듯이 JSON은 웹 개발자에게 매우 인기가 있으며 웹 애플리케이션에서 서버 또는 다른 애플리케이션에서 데이터를 보내고 검색하는 데 많이 사용됩니다.
Python은 많은 내장 패키지 또는 모듈과 함께 제공되며 인터넷을 통해 사용할 수있는 많은 외부 모듈이 있습니다. 흥미롭게도 JSON 데이터를 처리하기위한 내장 모듈json
도 있습니다.
Python에서 JSON은 두 가지 방식으로 표현 될 수 있습니다. 첫째, 문자열로. JSON 문자열은 다음과 같습니다.
jsonString = '{ "name": "DelftStack", "email": "DelftStack@domain.com", "age": 20, "country": "Netherlands", "city": "Delft"}'
JSON을 문자열로 표현할 때는 큰 따옴표 (""
) 만 사용하여 키와 문자열 값을 래핑해야합니다. JSON은 작은 따옴표를 지원하지 않으며 작은 따옴표를 사용하면 오류를 발생시킵니다.
두 번째 방법은 Python 객체 또는 널리 알려진 Python 사전을 사용하는 것입니다. JSON과 유사한 구문이 있습니다.
파이썬 사전 형태의 JSON 표현은 다음과 같습니다.
jsonObject = {
"name": "DelftStack",
"email": "DelftStack@domain.com",
"age": 20,
"country": "Netherlands",
"city": "Delft",
}
다시 말하지만, 큰 따옴표 만 사용해야합니다.
Python에서json
모듈을 사용하여 파일에 JSON 쓰기
문자열 형식으로 JSON을 저장하는 변수가 있다고 가정합니다. 따라서 JSON 파일로 작성하려면 다음 코드를 사용할 수 있습니다.
import json
fileName = "my-data.json"
jsonString = '{ "name": "DelftStack", "email": "DelftStack@domain.com", "age": 20, "country": "Netherlands", "city": "Delft"}'
jsonString = json.loads(jsonString)
file = open(fileName, "w")
json.dump(jsonString, file)
file.close()
먼저json
모듈을 가져 왔습니다. 그런 다음 JSON 파일 이름과 JSON 문자열 자체를 두 개의 변수에 저장했습니다. 그런 다음write
모드에서 선택한 이름으로 새 파일을 만들고 엽니 다.
그런 다음json
모듈의loads
함수를 사용하여 JSON 문자열을 파이썬 사전으로 변환하여 파일에 씁니다. 이 함수는 유효한 JSON 문자열을 받아 Python 사전으로 변환합니다.
이 함수에 유효하지 않은 문자열이 제공되면
json.decoder.JSONDecodeError
오류가 발생합니다. 따라서 올바른 문자열을 전달하거나 오류 처리를 위해try-except-finally
블록을 사용하는지 확인하십시오.
다음으로,json
모듈이 제공하는dump()
메소드를 사용합니다. 이 메소드는 파이썬 사전과 파일 설명자를 매개 변수로 받아들이고 사전의 데이터를 파일에 씁니다.
dump()
메소드는 파일이 바이너리 형식으로 열리지 않은 경우에만 작동합니다. 즉,"wb"
및"rb"
가 작동하지 않고TypeError
가 발생합니다.
마지막으로 파일을 닫으면 프로그램이 종료됩니다. 프로그램에서 정의한 이름의 JSON 파일이 현재 디렉터리에 생성됩니다.
동일한 이름과 동일한 확장자를 가진 파일이 작업 디렉토리에 있으면 해당 파일의 내용을 덮어 씁니다.
이제 Python 객체 또는 Python 사전을 JSON 파일에 작성한다고 가정합니다. 이 경우 다음 코드 스 니펫을 참조하십시오.
import json
fileName = "my-data.json"
jsonObject = {
"name": "DelftStack",
"email": "DelftStack@domain.com",
"age": 20,
"country": "Netherlands",
"city": "Delft",
}
file = open(fileName, "w")
json.dump(jsonObject, file)
file.close()
이 경우, 우리는 이미 파이썬 객체 또는 사전을 가지고 있으며, 위에서 설명한대로dump()
는 사전을 매개 변수로 받아들이고 파일 설명자에 기록합니다. 따라서 쓰기 모드에서 파일을 열고dump()
메소드를 사용하여 파일에 데이터를 쓰고 파일을 닫습니다.