본문 바로가기

major/Python

파이썬으로 JSON 파싱하기

openAPI로 데이터를 받을 때 JSON에 대해서 처음 알게 되었습니다.

대부분의 API가 JSON 형식으로 데이터를 주기 때문에 꼭 알아야 하지만, 하지만 제대로 공부하지 않고 필요할 때만 급급하게 사용해와서 파싱 할 때 헤맨 적이 많아서 공부할 겸 한번 정리해봤습니다.

 

1. JSON 형식

JSON은 Key-Value 쌍으로 이루어진 Object 형식으로 이루어질 수 있습니다.

# Key-Value로 이루어진 jsonObject
{
  "id": 1,
  "name": "hellollama"
}

그리고 Value에 들어갈 값이 여러개일 때 Array를 사용합니다.

# Array
{
  "id": 1,
  "name": ["hellollama", "choppermask"]
}

Value에 들어갈 자료형으로는 Number, String, Boolean, Array, Object, Null이 있습니다.

더 자세한건 위키백과에서 확인하세요.

 

JSON - 위키백과 바로가기

2. JSON 파싱 - Key 1개:Value 1개

Object를 load 합니다.

그리고 Object의 name이라는 key의 Value를 출력합니다.

js1 = '{"id": 1, "name": "hellollama"}'
jsonObject = json.loads(js1)
print(jsonObject.get("name"))

실행 결과

 

3. JSON 파싱 - Key 1개:Value N개

Object의 name이라는 key는 Array를 가집니다.

jsonArray에 name의 Array를 저장하고 for문으로 하나씩 출력합니다.

js2 = '{"id": 1, "name": ["hellollama", "choppermask"]}'
jsonObject = json.loads(js2)
jsonArray = jsonObject.get("name")
for list in jsonArray:
    print(list)

실행 결과

 

4. JSON 파싱 - 중첩된 Object

아래에서 info라는 key는 value값으로 json object를 가집니다.

아래와 같이 get()을 두 번 써서 값을 가져올 수 있습니다.

js3 = '{"id": 1, "info": {"name": "hellollama", "email": "jms393497@gmail.com"}}'
jsonObject = json.loads(js3)
print(jsonObject.get("info").get("name"))

#jsonObjectInfo = jsonObject.get("info")
#print(jsonObjectInfo.get("name"))

실행 결과

5. JSON 파싱 - 3,4번 둘 다

js4 = '{"id": 1, "info": [{"name": "hellollama", "email": "jms393497@gmail.com"}, {"name": "choppermask", "email": "abcde@abcde.com"}]}'
jsonObject = json.loads(js4)
jsonArray = jsonObject.get("info")
for list in jsonArray:
    print(list.get("email"))

실행 결과

 

6. JSON 파싱 - .json파일 읽기

.json파일에 저장된 데이터는 다음과 같이 파싱할 수 있습니다.

file = open('example.json')
jsonString = json.load(file)
print(jsonString.get("info"))

 

7. 꿀팁

API에서 JSON 데이터를 받다 보면 아래와 같이 일렬로 나열된 데이터도 볼 수 있습니다.

영화관 진흥 위원회 API

JSON 형식을 빠르게 알아보기 위해서는 깔끔하게 보이도록 변경하는 게 중요한데요,

코드 편집기 ATOM의 atom-beautifly라는 패키지를 사용하면 json 데이터를 빠르게 정리해줍니다.

알아보기 힘든 json 데이터
정리된 json 데이터

최근에 mongoDB를 사용해보면서 json에 대한 공부가 필요해져서 한번 정리해봤습니다.

그래도 아직까진 복잡한 json은 알아보기 힘듭니다.

꿀팁으로 알려드린건 json 파일 알아보기 너무 힘들어서 제가 일일이 tab으로 정리하다가 알아낸 방법입니다.

다른 분들은 저처럼 시간낭비하는 일이 없었으면 좋겠습니다.

 

 


잘못된 내용이 있다면 언제든지 댓글이나 메일로 알려주시면 감사하겠습니다.

이 포스팅이 도움이 되었다면 공감 부탁드립니다.

궁금한 점은 언제든지 댓글 남겨주시면 답변해드리겠습니다:D