URL을 구문 분석하고 (일부 파이썬 라이브러리 사용) URL의 쿼리 매개 변수 부분의 키와 값으로 파이썬 사전을 반환 할 수 있습니까? 예를 들어python을 dict하기위한 URL 쿼리 매개 변수
:
url = "http://www.example.org/default.html?ct=32&op=92&item=98"
기대 수익 :
{'ct':32, 'op':92, 'item':98}
URL을 구문 분석하고 (일부 파이썬 라이브러리 사용) URL의 쿼리 매개 변수 부분의 키와 값으로 파이썬 사전을 반환 할 수 있습니까? 예를 들어python을 dict하기위한 URL 쿼리 매개 변수
:
url = "http://www.example.org/default.html?ct=32&op=92&item=98"
기대 수익 :
{'ct':32, 'op':92, 'item':98}
사용 urlparse
library :.
>>> import urlparse
>>> url = "http://www.example.org/default.html?ct=32&op=92&item=98"
>>> urlparse.urlsplit(url)
SplitResult(scheme='http', netloc='www.example.org', path='/default.html', query='ct=32&op=92&item=98', fragment='')
>>> urlparse.parse_qs(urlparse.urlsplit(url).query)
{'item': ['98'], 'op': ['92'], 'ct': ['32']}
>>> dict(urlparse.parse_qsl(urlparse.urlsplit(url).query))
{'item': '98', 'op': '92', 'ct': '32'}
urlparse.parse_qs()
및 urlparse.parse_qsl()
방법을 고려하여, 쿼리 문자열을 구문 분석하는 키가 두 번 이상 발생할 수 있습니다. r은 중요 할 수 있습니다.
파이썬 3에서 urlparse
은 urllib.parse
으로 옮겨졌습니다.
파이썬 3의 경우, 복수 값이있을 수 있으므로 parse_qs
의 dict 키는 목록에 있습니다. 당신이 파서를 사용하지 않으려면
>>> from urllib.parse import urlsplit, parse_qs
>>>
>>> url = "http://www.example.org/default.html?ct=32&op=92&item=98"
>>> query = urlsplit(url).query
>>> params = parse_qs(query)
>>> params
{'item': ['98'], 'op': ['92'], 'ct': ['32']}
>>> dict(params)
{'item': ['98'], 'op': ['92'], 'ct': ['32']}
>>> {k: v[0] for k, v in params.items()}
{'item': '98', 'op': '92', 'ct': '32'}
: 당신은 단지 첫 번째를 원하는 경우
url = "http://www.example.org/default.html?ct=32&op=92&item=98"
url = url.split("?")[1]
dict = {x[0] : x[1] for x in [x.split("=") for x in url[1:].split("&") ]}
나는 내 프로젝트에서이 작업을 수행 할 수있는 기능을 만들 수 있습니다.
payload = "key1=value1&key2=value2&key3=value3"
qs_to_dict(payload)
또는 Python3에 대한 urlparse'로'수입 urllib.parse를 사용
. – michaelmeyer
그리고 오래된 파이썬 (2.4 및 이전 버전)의 경우이 두 함수는 동일한 이름을 가진'cgi' 모듈에서 발견됩니다 – EdJoJob