Python:在列表中拆分字符串

时间:2013-10-11 22:33:27

标签: python string url loops split

我无法拆分'&'在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() 

2 个答案:

答案 0 :(得分:8)

NO。 STOP。

qs = urlparse.urlparse(url).query
qsl = urlparse.parse_qsl(qs)

答案 1 :(得分:1)

正如伊格纳西奥指出的那样,你不应该首先这样做。但我会解释你哪里出错了,以及如何解决它:

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("&")]

尝试两种方法来查看不同的输出,希望你能理解他们正在做的事情。