JSON (JavaScript Object Notation)์ ๋ฐ์ดํฐ ๊ตํ ํ์์ผ๋ก ๋๋ฆฌ ์ฌ์ฉ๋๋ฉฐ, ์ฌ๋๊ณผ ๊ธฐ๊ณ๊ฐ ๋ชจ๋ ์ฝ๊ธฐ ์ฝ๊ฒ ์ค๊ณ๋์๋ค. ๊ทธ๋ฌ๋ ๋๋์ JSON ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ธฐ ์ข๊ฒ ์ ๋ ฌํ์ฌ ๊ฐ๋ ์ฑ์ ๋์ด๋ ๊ฒ์ด ์ค์ํ๋ค. ์ด๋ฒ ํฌ์คํธ์์๋ Python์์ JSON ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ธฐ ์ข๊ฒ ์ ๋ ฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๋๋ก ํ์.
JSON ๋ฐ์ดํฐ ์ ๋ ฌ์ ์ค์์ฑ
JSON ๋ฐ์ดํฐ๋ ์งง์ ๋๋ ๊ฐ๋ ์ฑ์ด ์ข์ง๋ง, ๋ฐ์ดํฐ๊ฐ ๋ง์์ง๋ค๋ฉด, ๊ฐ๋ ์ฑ์ด ๊ธ๊ฒฉํ ๋๋น ์ง๊ธฐ ์์ํ๋ค. ๋ฐ๋ผ์ JSON ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ธฐ ์ข๊ฒ ์ ๋ ฌํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ด์ ์ด ์๋ค
- ๊ฐ๋ ์ฑ ํฅ์: ์ฌ๋์ด ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์ฝ๊ณ ์ดํดํ ์ ์๋ค.
- ๋๋ฒ๊น ์ฉ์ด: ๋ณต์กํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๋ถ์ํ๊ณ ๋ฌธ์ ๋ฅผ ์ฝ๊ฒ ์ฐพ์ ์ ์๋ค.
- ๋ฒ์ ๊ด๋ฆฌ: ์ ๋ ฌ๋ JSON ๋ฐ์ดํฐ๋ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์์์ ์ฐจ์ด๋ฅผ ์ฝ๊ฒ ํ์ธํ ์ ์๋ค.
Python์์ JSON ๋ฐ์ดํฐ ์ ๋ ฌ ๋ฐฉ๋ฒ
Python์ json ๋ชจ๋์ ์ฌ์ฉํ์ฌ JSON ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ธฐ ์ข๊ฒ ์ ๋ ฌํ ์ ์๋ค. ์ด๋ฅผ ์ํด์๋ json.dumps ๋๋ json.jump ํจ์์ indent ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
json.dumps ํจ์ ์ฌ์ฉ
json.dumps ํจ์๋ Python ๊ฐ์ฒด๋ฅผ JSON ๋ฌธ์์ด๋ก ๋ณํํ๋ฉฐ, ์ด๋, indent ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ฌ์ฐ๊ธฐ ํ ์ ์๋ค. ์ผ๋ฐ์ ์ผ๋ก tab์ ์ฌ์ฉํ์ฌ ์ ๋ ฌํ๋ฏ๋ก indent=4 ๋ผ๊ณ ํ์ฌ ์ ๋ ฌํ ์ ์๋ค.
import json # ์์ JSON ๋ฐ์ดํฐ data = { "name": "Alice", "age": 30, "city": "New York", "skills": ["Python", "Machine Learning", "Data Science"] } # ์ ๋ ฌํ์ง ์๊ณ ์ถ๋ ฅ print(data) # ๋ณด๊ธฐ ์ข๊ฒ ์ ๋ ฌ ํ ์ถ๋ ฅ json_string = json.dumps(data, indent=4) print(json_string)
์ ์์ ์ฝ๋์ JSON ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ์ง ์๊ณ ์ถ๋ ฅํ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ ์๋ค.
{'name': 'Alice', 'age': 30, 'city': 'New York', 'skills': ['Python', 'Machine Learning', 'Data Science']}
ํ์ง๋ง json.dumps ํจ์๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋ค์ฌ์ฐ๊ธฐ ๋ JSON ๋ฌธ์์ด์ ์ถ๋ ฅํ๊ฒ ๋๋ค.
{ "name": "Alice", "age": 30, "city": "New York", "skills": [ "Python", "Machine Learning", "Data Science" ] }
json.dump ํจ์ ์ฌ์ฉ
json.dump ํจ์๋ Python ๊ฐ์ฒด๋ฅผ JSON ํ์ผ๋ก ์ ์ฅํ ๋ ์ฌ์ฉํ๋ค. ์ด ํจ์์์๋ indent ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ฌ์ฐ๊ธฐ ํ ์ ์๋ค.
import json # ์์ JSON ๋ฐ์ดํฐ data = { "name": "Alice", "age": 30, "city": "New York", "skills": ["Python", "Machine Learning", "Data Science"] } # JSON ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ธฐ ์ข๊ฒ ํ์ผ๋ก ์ ์ฅ with open("data.json", "w") as json_file: json.dump(data, json_file, indent=4)
์ ์ฝ๋๋ JSON ๋ฐ์ดํฐ๋ฅผ data.json ํ์ผ์ ๋ค์ฌ์ฐ๊ธฐ ๋ ํ์์ผ๋ก ์ ์ฅํ๋ค.
์ถ๊ฐ ์ต์ : keys ์ ๋ ฌ
JSON ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ ๋, ํค๋ฅผ ์ํ๋ฒณ ์์ผ๋ก ์ ๋ ฌํ๋ฉด ๊ฐ๋ ์ฑ์ด ๋์ฑ ํฅ์์ํฌ ์ ์๋ค. ์ด๋ฅผ ์ํด sort_keys ๋งค๊ฐ๋ณ์๋ฅผ True๋ก ์ค์ ํ์ฌ ์ํ๋ฒณ ์์ผ๋ก ์ ๋ ฌํ ์ ์๋ค.
import json # ์์ JSON ๋ฐ์ดํฐ data = { "name": "Alice", "age": 30, "city": "New York", "skills": ["Python", "Machine Learning", "Data Science"] } # JSON ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ธฐ ์ข๊ฒ ์ ๋ ฌํ๊ณ , ํค๋ฅผ ์ํ๋ฒณ ์์ผ๋ก ์ ๋ ฌ json_string = json.dumps(data, indent=4, sort_keys=True) print(json_string)
์ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ด ์ํ๋ฒณ ์์ผ๋ก ์ ๋ ฌ๋ JSON ๋ฌธ์์ด์ ์ถ๋ ฅํ๋ค
{ "age": 30, "city": "New York", "name": "Alice", "skills": [ "Python", "Machine Learning", "Data Science" ] }
๊ฒฐ๋ก
Python์ json ๋ชจ๋์ ์ฌ์ฉํ์ฌ JSON ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ธฐ ์ข๊ฒ ์ ๋ ฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์๋ค. indent ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ฌ์ฐ๊ธฐ ๋ JSON ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๊ณ , sort_keys ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ํค๋ฅผ ์ํ๋ฒณ ์์ผ๋ก ์ ๋ ฌํ ์ ์๋ค. ์ด๋ฌํ ๋ฐฉ๋ฒ์ ํตํด JSON ๋ฐ์ดํฐ๋ฅผ ๋ ์ฝ๊ฒ ์ฝ๊ณ , ๋๋ฒ๊น ํ๋ฉฐ, ๊ด๋ฆฌํ ์ ์๋ค. JSON ๋ฐ์ดํฐ ์ ๋ ฌ์ ํนํ ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐ ๋ถ์ ์์ ์์ ์ ์ฉํ ๋๊ตฌ์ด๋ฏ๋ก ์ฌ์ฉ๋ฐฉ๋ฒ์ ์ตํ ๋๋๋ค๋ฉด ์ ํ์ฉํ ์ ์์ ๊ฒ์ด๋ค.