Python 은 jsonpath - rw 모듈 을 사용 하여 JSon 대상 작업 예제 를 처리 합 니 다.
이틀 동안 파충 류 를 쓰 려 면 사이트 에서 돌아 온 제 이 슨 데이터 에서 유용 한 데 이 터 를 추출 해 야 한다.
url 에 요청 합 니 다. response 를 되 돌려 줍 니 다. python 3 에서
response.content
바 이 너 리 bytes 형식 입 니 다. decode()
으로 unicode
의 str 형식 으로 전환 해 야 합 니 다.
# requests
import json
response = requests.get(url,headers=self.headers)
response = response.content.decode()
response = json.loads(response) # json , python dict
# scrapy.Request
import json
import scrapy
response = scrapy.Request(url,headers=self.headers)
response = response.text.decode()
response = json.loads(response) # json , python dict
즉, json 대상 을 처리 하 는 것 은 dict 를 처리 하 는 것 과 마찬가지 로 많은 괄호 를 사용 해 야 하고 수치 도 하나의 정확 한 값 만 얻 을 수 있다 는 것 이다.하나 도 안 돌아 가.
xpath 와 css 선택 기 를 사용 한 사람 은 당연히 이런 방법 이 매우 무겁다 고 느 낄 것 이다.
마침 제 이 슨 에 게 도 유형의 선택 기 가 있 었 다.
jsonpath
그러나 주의해 야 할 것 은 python 의 라 이브 러 리 는 jsonpath 가 아 닙 니 다.공식 문서:https://pypi.python.org/pypi/jsonpath-rw (더 많은 jsonpath 문법 은 링크 를 클릭 하 십시오)
다음은 간단 하고 자주 사용 하 는 기본 적 인 방법 만 열거 하 였 다.
사용 예시
>>> from jsonpath_rw import jsonpath, parse
>>> json_obj = {"student":[{"male":176,"female":162},{"male":174,"female":159}]}
>>> jsonpath_expr = parse("student[*].male")
>>> male = jsonpath_expr.find(json_obj)
>>> male # list,
[DatumInContext(value=176, path=Fields('male'), context=DatumInContext(value={'male': 176, 'female': 162}, path=, context=DatumInContext(value=[{'male': 176, 'female': 162}, {'male': 174, 'female': 159}], path=Fields('student'), context=DatumInContext(value={'student': [{'male': 176, 'female': 162}, {'male': 174, 'female': 159}]}, path=This(), context=None)))), DatumInContext(value=174, path=Fields('male'), context=DatumInContext(value={'male': 174, 'female': 159}, path=, context=DatumInContext(value=[{'male': 176, 'female': 162}, {'male': 174, 'female': 159}], path=Fields('student'), context=DatumInContext(value={'student': [{'male': 176, 'female': 162}, {'male': 174, 'female': 159}]}, path=This(), context=None))))]
# ,
>>> [match.value for match in male]
[176, 174]
PS: 여기 서 여러분 께 비교적 실 용적 인 json 온라인 도 구 를 추천 합 니 다.
온라인 JSON 코드 검사, 검사, 미화, 포맷 도구:http://tools.jb51.net/code/json
JSON 온라인 포맷 도구:http://tools.jb51.net/code/jsonformat
온라인 XML / JSON 상호 변환 도구:http://tools.jb51.net/code/xmljson
json 코드 온라인 포맷 / 미화 / 압축 / 편집 / 변환 도구:http://tools.jb51.net/code/jsoncodeformat
온라인 json 압축 / 전의 도구:http://tools.jb51.net/code/json_yasuo_trans
더 많은 Python 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.,,,,,,,,,,,,,,,,,
본 논문 에서 말 한 것 이 여러분 의 Python 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.