[英]Get proper output from self var python
我正在嘗試做的事情:以一種仍然可以在其他方法中使用的方式輸出self.out
var的值。
編碼
if self.path_object is not None:
dictpath = {}
for path in self.path_object:
parsed = urlparse(path.pathToScan)
if parsed.query:
self.params = parsed.query.split('&', 2)
self.out = list(map(lambda v: v.split("=")[0] +"=" + str(self.fooz), self.params))
dictpath[parsed.geturl()] = self.out
print dictpath
該代碼path_object
了一組路徑(通過path_object
),然后解析&
符號上的那些路徑,並將self.fooz
的值self.fooz
到該路徑上,然后將其放入字典中並輸出結果。
結果其當前輸出的列表類似(為可讀性增加了空格):
{
u'www.somesite.com/param.php?id=317':
u'id=[<self.fooz>, <self.fooz>, <self.fooz>,<self.fooz>, <self.fooz>, <self.fooz>]',
u'somesite.com/param.php?id=911¶m2=6¶m3=cat':
[u'id=[<self.fooz>, <self.fooz>, <self.fooz>,<self.fooz>, <self.fooz>, <self.fooz>]',
u'param2=[<self.fooz>, <self.fooz>, <self.fooz>,<self.fooz>, <self.fooz>, <self.fooz>]',
u'param3=[<self.fooz>, <self.fooz>, <self.fooz>,<self.fooz>, <self.fooz>, <self.fooz>]']
}
我的問題是,如何通過另一種方法訪問此輸出,以便可以遍歷每個參數,例如:
u'somesite.com/param.php?id=<<<<<self.fooz>>>>>¶m2=6¶m3=cat':
然后
u'somesite.com/param.php?id=911¶m2=<<<<<self.fooz>>>>>¶m3=cat
然后對路徑中的每個參數依次類推。
因此,到目前為止,我嘗試從當前輸出中請求一個url,但是requests
不允許像<self.fooz>
這樣的路徑請求,因為它不是有效的url(例如,包括somesite.com或http:// somesite。 com )。
任何幫助是極大的贊賞。
非常感謝!
您必須再次解析該字符串。 使用urlparse.parse_qs
( https://docs.python.org/2/library/urlparse.html )。 像這樣做:
import urlparse
s = u'somesite.com/param.php?id=911¶m2=<<<<<self.fooz>>>>>¶m3=cat'
params = urlparse.parse_qs(s[s.find('?') + 1:])
print params
結果是:
{u'param3': [u'cat'], u'id': [u'911'], u'param2': [u'<<<<<self.fooz>>>>>']}
現在您可以遍歷params
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.