고급 파이썬 개발 과정
챕터
>
레벨
직렬화 모듈
JSON 모듈
목표
JSON 모듈을 사용하여 파일을 형식화해서 데이터가 제대로 저장되었는지 확인하려면 서비스 스테이션으로 이동하세요.
부속 건물 남쪽에 서비스 스테이션이 있습니다. 이 일대 전체가 농작물을 심기 위해 재개발될 예정입니다. 이 스테이션에는 새 개발을 위한 데이터를 처리하는 다양한 터미널이 있습니다. 데이터를 수동으로 작성할 수도 있지만 시간도 많이 걸립니다. 데이터를 처리하는 과정에서는 JSON(JavaScript Object Notation)을 사용할 수 있는데, 이는 프로그래밍 언어와 독립적인 데이터 형식으로, 읽기 쉽고 데이터 저장 및 전송에 용이합니다.
파이썬에서 JSON을 사용하려면 import json을 사용하여 JSON 함수에 접근할 수 있습니다. 여기서는 다음 함수를 사용할 것입니다:
json.loads(): JSON 문자열을 파이썬 데이터로 변환합니다. 파싱할 문자열 하나를 인자로 받습니다.json.dumps(): 파이썬 데이터를 JSON 문자열로 변환하는 함수로, 최대 네(4)개의 인자를 받을 수 있으며 첫 번째 인자만 필수입니다. 인자는 다음과 같습니다:- JSON으로 변환할 파이썬 데이터(딕셔너리, 리스트, 튜플, 문자열, 정수, 부동소수점, 불리언, None 등)
indent: 줄 앞에 추가할 공백(스페이스) 수separators: 데이터 항목 사이 및/또는 끝에 삽입할 구분자sort_keys: 딕셔너리를 변환할 때 키를 알파벳 순으로 정렬할지 여부
먼저, 왼쪽 전초 기지의 금색 X 표시 지점으로 가서 메모가 있는 책상을 향하세요. read() 함수를 사용하여 터미널 상태를 확인하는 데 필요한 정보를 확인하고 기록하세요. 그런 다음 터미널 앞의 밝은색 X 표시 지점으로 이동합니다. transmission이라는 상수가 있는데, 이를 JSON으로 형식화하기 위해 다음과 같이 json.dumps()를 사용하세요:
transmission = json.dumps(transmission)
load라는 이름의 딕셔너리를 생성하고, transmission 상수를 인자로 하여 json.loads()의 반환값을 저장하세요. 이렇게 하면 JSON이 파이썬으로 변환되어 정보를 쉽게 접근할 수 있습니다. 메모에 나열된 키를 사용하여, 생성한 load 딕셔너리와 함께 speak() 함수를 호출하세요. 예: player.speak(load["system"]) — 이 작업을 모든 키에 대해 수행합니다.
터미널 정보를 확인한 후 스테이션 쪽으로 내려가 내부로 들어가 초록색 카펫 위의 밝은색 X 표시 지점으로 이동하세요. read() 함수를 사용하여 메모를 확인하고 값을 기록하세요. 에디터에 미리 작성된 profile이라는 이름의 딕셔너리가 있으니, 메모의 정보를 참고하여 누락된 값을 채우세요.
초록색 카펫 위의 어두운 X 표시 지점으로 이동하여 터미널을 향하고, transfer라는 변수를 생성한 뒤 profile 딕셔너리를 단일 인자로 하여 json.dumps()의 반환값을 저장하세요. 이렇게 하면 딕셔너리가 JSON 문자열 객체로 변환됩니다. 미리 작성된 display() 함수에 이 transfer JSON을 전달하여 터미널에 데이터를 저장하세요.
붉은색 카펫 위의 어두운 X 표시 지점으로 이동하여 read() 함수를 사용해 터미널에 이미 입력된 데이터를 확인하세요. 이 데이터는 올바른 형식으로 표현되지 않았으므로, JSON으로 저장 및 형식화해야 합니다. red_data라는 이름의 딕셔너리 상수에 데이터가 저장되어 있으니, red_storage라는 변수를 만들고 json.dumps()의 반환값을 저장하세요.
데이터를 형식화하기 위해 함수에 다음 인자를 추가하세요: 첫 번째 인자로 red_data를 전달하여 JSON으로 변환하고, indent를 5로 설정하여 텍스트를 정렬하며, separators에 ("- ", " = ")를 지정하여 각 줄 끝에 해당 기호를 추가합니다. 예시는 다음과 같습니다:
red_storage = json.dumps(red_data, indent=5, separators=("- ", " = "))
미리 작성된 display() 함수를 사용하여 red_storage JSON 문자열을 전달하고 형식화된 데이터를 저장 및 표시하세요.
파란색 카펫 위의 어두운 X 표시 지점으로 이동하여 터미널을 향한 후 read() 함수를 사용합니다. 이전과 마찬가지로 데이터가 제대로 저장되지 않았으므로 형식화 및 정렬이 필요합니다. blue_data라는 이름의 상수에 데이터가 저장되어 있으니, blue_storage라는 변수를 생성하고 json.dumps()의 반환값을 저장하세요.
인자로는 blue_data를 전달하여 JSON으로 변환하고, indent를 4로 설정하여 텍스트를 정렬하며, separators에 (".0", " = ")를 지정하여 각 줄 끝에 해당 기호를 추가합니다. 추가로 마지막 인자로 sort_keys=True를 지정하여 키를 정렬하세요. 예시는 다음과 같습니다:
blue_storage = json.dumps(blue_data, indent=4, separators=(".0", " = "), sort_keys=True)
미리 작성된 display() 함수를 사용하여 blue_storage JSON 문자열을 전달하고 정렬된 데이터를 저장 및 표시하면 레벨이 완료됩니다.