0

我无法在 URL 列表中拆分“&”。我知道这是因为我无法直接拆分列表,但我无法弄清楚如何解决此错误。我愿意接受任何建议。

def nestForLoop():
    lines = open("URL_leftof_qm.txt", 'r').readlines()
    for l in lines:
        toke1 = l.split("?")
        toke2 = toke1.split("&")
        for t in toke2:
            with open("ampersand_right_split.txt".format(), 'a') as f:
                    f.write
    lines.close()

nestForLoop() 
4

2 回答 2

8

不。停止。

qs = urlparse.urlparse(url).query
qsl = urlparse.parse_qsl(qs)
于 2013-10-11T22:35:57.887 回答
1

正如 Ignacio 指出的那样,您一开始就不应该这样做。但我会解释你哪里出错了,以及如何解决它:

toke2 是两个字符串的列表:在 ? 之前的主 URL,在 & 之后的查询字符串。您不想拆分该列表或该列表中的所有内容;您只想拆分查询字符串。所以:

mainurl, query = l.split("?")
queryvars = query.split("&")

如果您确实想拆分第一个列表中的所有内容怎么办?这可能意味着两种不同的事情,当然它们的处理方式不同。但两者都需要在第一个列表上进行循环(显式或在列表理解内)。要么:

tokens = [toke2.split("&") for toke2 in l.split("?")]

或者

tokens = [token for toke2 in l.split("?")
          for token in toke2.split("&")]

尝试它们以查看不同的输出,希望您能理解它们在做什么。

于 2013-10-11T22:41:16.000 回答