簡體   English   中英

從self var python獲取正確的輸出

[英]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&param2=6&param3=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>>>>>&param2=6&param3=cat': 

然后

u'somesite.com/param.php?id=911&param2=<<<<<self.fooz>>>>>&param3=cat

然后對路徑中的每個參數依次類推。

因此,到目前為止,我嘗試從當前輸出中請求一個url,但是requests不允許像<self.fooz>這樣的路徑請求,因為它不是有效的url(例如,包括somesite.com或http:// somesite。 com )。

任何幫助是極大的贊賞。

非常感謝!

您必須再次解析該字符串。 使用urlparse.parse_qshttps://docs.python.org/2/library/urlparse.html )。 像這樣做:

import urlparse
s = u'somesite.com/param.php?id=911&param2=<<<<<self.fooz>>>>>&param3=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.

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