簡體   English   中英

調用cgi.FieldStorage以獲取任意網址

[英]Calling cgi.FieldStorage for an arbitrary url

我想獲取對應於任意URL的字段值。 即給定“ http://example.com/hello?q=1&b=1 ”,我想要字典{'q':1,'b':1}。 我該如何使用cgi.FieldStorage?

謝謝!

您可以使用urlparse做到這一點

from urlparse import urlparse, parse_qs
qs = urlparse("http://example.com/hello?q=1&b=1").query
parse_qs(qs)

如果必須使用FieldStorage

cgi.FieldStorage(environ={'REQUEST_METHOD':'GET', 'QUERY_STRING':qs})

你不-你用cgi.parse_qs在2.5或更早版本, urlparse.parse_qs在2.6或更高版本。 例如:

>>> import urlparse
>>> pr = urlparse.urlparse("http://example.com/hello?q=1&b=1")
>>> urlparse.parse_qs(pr.query)
{'q': ['1'], 'b': ['1']}

請注意,值始終將是字符串列表-您似乎希望它們是(“標量”)整數,但這確實沒有任何意義(您希望如何解析?q=bah ?!)- -如果您“知道”每個參數只有一個實例,並且這些實例的值始終是數字字符串,那么很容易將解析返回的內容轉換為所需的形式(當然,更好的是,該“已知”屬性可以被檢查 ,如果實際上不成立則引發異常;-)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM