Python json 해석 라이브러리 jsonpath 원리 및 사용 예시
jsonpath는 여러 층의 json 형식을 끼워 넣는 해석에 사용됩니다.
pip install jsonpath
JsonPath
묘사
$
루트 노드
@
현행 노드
.or[]
하위 노드 가져오기
n/a
부모 노드, jsonpath 지원
..
위치와 상관없이 모든 복합 조건을 선택하는 조건
*
모든 요소 노드 일치
n/a
속성 접근에 따라 json은 지원하지 않습니다. json은 키-value 귀속 구조이기 때문에 속성 접근이 필요하지 않습니다.
[]
교체기 표시(안에서 간단한 교체 조작을 할 수 있다. 예를 들어 수조 아래 표시, 내용에 따라 값을 선택할 수 있다)
[,]
다중 선택 지원
?()
필터링 작업 지원
()
표현식 계산 지원
n/a
그룹, JsonPath는 지원되지 않음
jsonpath 사용 예시
book_dict = {
"store": {
"book": [
{ "category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{ "category": "fiction",
"author": "Evelyn Waugh",
"title": "Sword of Honour",
"price": 12.99
},
{ "category": "fiction",
"author": "Herman Melville",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99
},
{ "category": "fiction",
"author": "J. R. R. Tolkien",
"title": "The Lord of the Rings",
"isbn": "0-395-19395-8",
"price": 22.99
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
}
}
JsonPathResult
$.store.book[*].author
store의 모든 책 작성자
$…author
모든 저자
$.store.*
store 아래의 모든 요소
$.store…price
store의 모든 가격
$…book[2]
세 번째 책
$…book[(@.length-1)]
마지막 책
$…book[0,1]
앞의 두 권의 책을 찾다
$…book[?(@.isbn)]
jsbn이 있는 모든 수를 가져옵니다.
$…book[?(@.price<10)]
획득 가격 10 이상
$…*
모든 데이터 일치
사용 예
$는 루트 노드를 찾습니다. 매개 변수는python의dict 형식입니다. 찾을 때list 결과를 되돌려주고 찾을 때 실패할 때False로 되돌려줍니다.
import jsonpath
result = {
"code": 0,
"data": [
{
"age": 20,
"create_time": "2019-09-15",
"id": 1,
"mail": "[email protected]",
"name": "yoyo",
"sex": "M"
},
{
"age": 21,
"create_time": "2019-09-16",
"id": 2,
"mail": "[email protected]",
"name": "yoyo111",
"sex": "M"
}
],
"msg": "success!"
}
msg = jsonpath.jsonpath(result, '$.msg')
print(msg) # ['success!']
names = jsonpath.jsonpath(result, '$..name')
print(names) # ['yoyo', 'yoyo111']
no = jsonpath.jsonpath(result, '$..yoyo')
print(no) # False
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.