코딩라이브러리/파이썬

[파이썬] json data 정렬 시 sorted의 key 값으로 설정하기

유니네 라이브러리 2024. 9. 12. 14:12

파이썬에서 JSON 데이터를 다룰 때, 특정 키 값을 기준으로 정렬해야 하는 경우가 많다.

이 글에서는 sorted() 함수의 key 매개변수를 활용하여 JSON 데이터를 정렬하는 방법을 설명한다.

 

✅ JSON 데이터를 특정 키 값으로 정렬하기

 

1️⃣ 정렬할 JSON 데이터 예시

 

우리는 다음과 같은 JSON 데이터를 다룬다고 가정한다.

#많이 보이는 json data
json_data = [
    { 'blogSite' : 'tistory',
      'blogUrl' : 'http://yuneenelife.tistory.com',
      'blogCategory' : 'IT'
    },
    { 'blogSite' : 'naver',
      'blogUrl' : 'http://blog.naver.com/yuneenelife',
      'blogCategory' : 'trip'
    }
]

 

여기서 blogUrl을 기준으로 오름차순 정렬하고 싶다고 가정한다.

 

2️⃣ sorted() 함수 활용하여 정렬하기

 

파이썬의 sorted() 함수를 사용하면 특정 키 값을 기준으로 정렬할 수 있다.

sorted_json_data = sorted(json_data, key=lambda x: x['blogUrl'], reverse=False)

 

설명:

key=lambda x: x['blogUrl']blogUrl 값을 기준으로 정렬

reverse=False오름차순 정렬 (기본값)

reverse=True내림차순 정렬

 

3️⃣ 정렬 결과 확인하기

 

정렬된 데이터를 출력하면 다음과 같다.

print("정렬 전:", json_data)
print("정렬 후:", sorted_json_data)

 

🖥️  출력 결과:

정렬 전:
[
  {'blogSite': 'tistory', 'blogUrl': 'http://yuneenelife.tistory.com', 'blogCategory': 'IT'}, 
  {'blogSite': 'naver', 'blogUrl': 'http://blog.naver.com/yuneenelife', 'blogCategory': 'trip'}
]

정렬 후:
[
  {'blogSite': 'naver', 'blogUrl': 'http://blog.naver.com/yuneenelife', 'blogCategory': 'trip'}, 
  {'blogSite': 'tistory', 'blogUrl': 'http://yuneenelife.tistory.com', 'blogCategory': 'IT'}
]

blogUrl을 기준으로 오름차순 정렬된 것을 확인할 수 있다.

 

📌 정리

1. JSON 데이터를 정렬할 때 sorted() 함수를 사용한다.

2. key=lambda x: x['정렬할 키']를 설정하면 해당 키 값을 기준으로 정렬된다.

3. 오름차순 정렬reverse=False, 내림차순 정렬reverse=True를 사용한다.

4. 정렬 후 새로운 리스트가 반환되므로, 기존 데이터를 유지하면서 정렬된 데이터를 따로 저장할 수 있다.

 

이 방법을 활용하면 JSON 데이터를 원하는 기준으로 쉽게 정렬할 수 있다. 🚀

 

🔗 lambda 함수 관련 글은 이전 글 참고

 

파이썬 람다 함수 lambda (with 백준 1181)

lambda (람다) 표현식 lambda 키워드로 함수로 사용할 수 있으며 일반적인 함수 정의의 편의 문법임.lambda a, b: a+b 와 같이 함수 객체가 있는 곳이면 어디나 lambda 함수가 사용될 수 있다. 제약 문법적

yuneenelife.tistory.com

🔗 파이썬 정렬 관련 글은 이전 글 참고

 

파이썬 정렬 sort, sorted (with 백준 2750, 5597, 1181)

파이썬 정렬은 sort(), sorted()를 사용한다. 내장함수 sort()이 메서드는 리스트 내 항목 간의 비교만 사용하여 정렬한다.정렬 후 리스트는 수정된 상태로 유지된다.반환값이 없다.리스트 타입만 사

yuneenelife.tistory.com