SeouliteLab

파이썬으로 JSON 필터링하기: jmespath 모듈 활용법 본문

카테고리 없음

파이썬으로 JSON 필터링하기: jmespath 모듈 활용법

Seoulite Lab 2024. 4. 17. 08:47

JSON(Mozilla JSON)을 쿼리하고 변환하는 데 사용되는 JMESPath는 파이썬에서 널리 사용되는 라이브러리 중 하나입니다. 이를 통해 JSON 데이터를 필터링하고 원하는 데이터만 추출할 수 있습니다. 이제 몇 가지 예제를 통해 jmespath 모듈의 활용법을 알아보겠습니다.

예제 1: 간단한 필터링

import jmespath

# JSON 데이터 정의
data = {
    "people": [
        {"name": "Alice", "age": 30},
        {"name": "Bob", "age": 25},
        {"name": "Charlie", "age": 35}
    ]
}

# 필터링 쿼리
query = "people[?age > `28`].name"

# 쿼리 실행
result = jmespath.search(query, data)

# 결과 출력
print("쿼리 결과:", result)

이 예제에서는 jmespath 모듈을 사용하여 JSON 데이터를 필터링하는 방법을 보여줍니다. people 배열에서 나이가 28살 이상인 사람들의 이름만 추출하는 쿼리를 작성하고 실행합니다.

예제 2: 중첩된 필터링

import jmespath

# JSON 데이터 정의
data = {
    "store": {
        "book": [
            {"title": "Book 1", "price": 10},
            {"title": "Book 2", "price": 20},
            {"title": "Book 3", "price": 30}
        ]
    }
}

# 필터링 쿼리
query = "store.book[?price > `15`].title"

# 쿼리 실행
result = jmespath.search(query, data)

# 결과 출력
print("쿼리 결과:", result)

이 예제에서는 중첩된 JSON 데이터에서 필터링하는 방법을 보여줍니다. store.book 배열에서 가격이 15보다 큰 책의 제목만 추출하는 쿼리를 실행합니다.

예제 3: 값 변환

import jmespath

# JSON 데이터 정의
data = {
    "numbers": [1, 2, 3, 4, 5]
}

# 변환 쿼리
query = "numbers[?@ > `2`].@ | [0]"

# 쿼리 실행
result = jmespath.search(query, data)

# 결과 출력
print("쿼리 결과:", result)

이 예제에서는 jmespath를 사용하여 JSON 데이터의 값을 변환하는 방법을 보여줍니다. numbers 배열에서 2보다 큰 숫자 중 첫 번째 값을 추출하는 쿼리를 실행합니다.