0
Python3的urllib.parse.parse_qs
奇怪返回string, list<string>
的字典查詢字符串:URL查詢字符串中字段名稱的多個值?
>>> import urllib.parse as p
>>> url = p.urlparse("http://exam.ple/path?query=string&yes=no")
ParseResult(scheme='http', netloc='exam.ple', path='/path', params='', query='query=string&yes=no', fragment='')
>>> p.parse_qs(url.query)
{'query': ['string'], 'yes': ['no']}
功能的documentation說:
字典鍵是唯一的查詢變量名和值是值的列表每個名字。
我可以利用這個「值列表」功能嗎?
無論Wikipedia,也不Stack Overflow,也不the IETF specification提及關於「多」或字段的值「列表」什麼,我無法找到任何這樣的語法:
>>> p.parse_qs(p.urlparse("http://exam.ple/path?query=string&yes=no/a=0").query)
{'query': ['string'], 'yes': ['no/a=0']}
>>> p.parse_qs(p.urlparse("http://exam.ple/[email protected]=no").query)
{'query': ['[email protected]=no']}
>>> p.parse_qs(p.urlparse("http://exam.ple/path?query=string;yes=no").query)
{'query': ['string'], 'yes': ['no']}
>>> p.parse_qs(p.urlparse("http://exam.ple/path?query=string,yes=no").query)
{'query': ['string,yes=no']}
沒有分隔符似乎永遠導致一個值包含多個字符串的鍵。可能嗎?
那是......奇怪,但確定 – cat
這是一個有點邊緣情況,但必要的,因爲它在技術上是有效的。如果這回答你的問題,你能否將其標記爲已接受? –
是啊,我等着它讓我這樣做:) – cat