새소식

SCIENCE OF DATA ANALYSIS/데이터 분석을 위한 CS

[빅쿼리 훈련] #001 빅쿼리 JSONPath 표현식

  • -

안녕하세요 통계학도 데잇입니다.

빅쿼리에서 JSON으로 저장된 데이터를 마주할 때는 일반적이지 않은 문법에 당황하곤 합니다.

다음 JSONPath 전용 기호를 배워둡시다!


 

Figure1. Training Bigquery


아래와 같은 기호들은 JSONPath 표현식에서 복잡한 데이터 구조 내에서 특정 데이터에 효과적으로 접근하게 해줍니다.

1. $ - 루트 객체

  • 정의 : JSONPath 쿼리의 시작점을 나타내며, JSON 문서의 최상위 레벨을 가리킵니다.

2. . 또는 [] - 자식 연산자

  • . : 자식 요소에 접근하는 데 사용됩니다. 예를 들어, $.name은 루트 객체의 name 필드를 가리킵니다.
  • [ ] : 배열 인덱스나 필터 표현식에 사용됩니다. 예를 들어, $.phones[0]은 phones 배열의 첫 번째 요소를 의미합니다.

3. .. - 재귀적 강하(Deep Scan)

  • 특정 이름의 필드를 현재 객체 및 하위 객체에서 찾습니다. 예를 들어, $.books..author는 books 객체 내 모든 author 필드를 찾습니다.

4. * - 와일드카드

  • 모든 객체나 배열의 요소를 나타냅니다. 예를 들어, $.books[*].title는 books 배열의 모든 title 필드를 가리킵니다.

5. [start:end:step] - 배열 슬라이스 연산자

  • 배열의 부분 집합을 선택합니다. 예를 들어, $.books[0:5]는 books 배열에서 처음 다섯 개의 요소를 선택합니다.

6. ?() - 필터 표현식

  • 조건에 따라 배열의 요소를 필터링합니다. 예를 들어, $.books[?(@.price < 10)]는 price가 10 미만인 books 배열의 모든 요소를 찾습니다.

6-1. @ - 현재 노드

  • 필터 표현식 내에서 사용되며, 현재 처리 중인 요소를 가리킵니다. 예를 들어, @.price는 현재 배열 요소의 price 필드를 나타냅니다.
Contents

소중한 공감 감사합니다

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 댓글/공감 꾸욱!