Python 은 jsonpath - rw 모듈 을 사용 하여 JSon 대상 작업 예제 를 처리 합 니 다.

3431 단어
이 사례 는 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 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기