Python:在列表中拆分字符串
在URL列表中拆分“&”时遇到问题。我知道这是因为我不能直接拆分列表,但我不知道如何避免这个错误。我愿意接受任何建议Python:在列表中拆分字符串,python,string,url,loops,split,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:
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()
不,停下来
qs = urlparse.urlparse(url).query
qsl = urlparse.parse_qsl(qs)
正如伊格纳西奥所指出的,你一开始就不应该这样做。但我会解释你哪里出了问题,以及如何解决: tok2是一个包含两个字符串的列表:在?之前的主URL,以及在&之后的查询字符串。您不想拆分该列表或该列表中的所有内容;您只需要拆分查询字符串。因此:
mainurl, query = l.split("?")
queryvars = query.split("&")
如果您确实要拆分第一个列表中的所有内容,该怎么办?这可能意味着两件不同的事情,当然这两件事情的处理方式不同。但两者都需要在第一个列表上循环(显式,或在列表理解中)。或者:
tokens = [toke2.split("&") for toke2 in l.split("?")]
或
尝试这两种方法以查看不同的输出,希望您能够理解它们在做什么。我得到一个值错误。可能是因为我的文件中有一些代码在某些行上没有&符号。我怎样才能解决这个问题?没有a的行不会引发任何问题,但是没有a的行?将将第一行更改为
mainurl,u,query=l.partition('?')
。它在'?'上拆分,但在'&'上拆分。@MichaelJerzyRegdosz:如果您实际使用的是我上面写的代码,则在?
上拆分,而不是在和上拆分,将不会产生值错误;您将在queryvars
中成功获得一个单元素列表。所以,要么你错了,缺少的是?
,要么你写的代码与我展示的不同,在这种情况下,我无法调试我没有看到的代码。
tokens = [token for toke2 in l.split("?")
for token in toke2.split("&")]