追加到列表后,列表索引超出范围python

时间:2020-01-10 01:11:08

标签: python

我想通过在冒号处分割每个代理来添加每个代理,然后添加到列表中。我需要做的一件事是,然后将冒号加回到4个列表索引的前3个末尾,我无法执行此操作,因为在进行测试以确保它可以编译时,我得到此错误,lists index out of range.所以我认为可以也许它们都被追加到列表中的一个字符串中,所以我做了一个打印语句,我看到了,[['fa8tUVQ.usa.unknownproxies.com', '10000', 'mferraro2304', 'o3VXtvjHpWr4\n']]是否有可能使双括号弄乱了?如果是这样,我该如何删除它,然后继续重新添加冒号?这是我的代码:


for lines in ordered_proxies:
    pvar = lines.split(':')  # rotating proxy or host
    pvars.append(pvar)
print(pvars)
PROXY_HOST = pvars[0]
PROXY_PORT = pvars[1]
PROXY_USER = pvars[2]
PROXY_PASS = pvars[3]

manifest_json = """
{
"version": "1.0.0",
"manifest_version": 2,
"name": "Chrome Proxy",
"permissions": [
"proxy",
"tabs",
"unlimitedStorage",
"storage",
"<all_urls>",
"webRequest",
"webRequestBlocking"
],
  "background": {
      "scripts": ["background.js"]
},
  "minimum_chrome_version":"22.0.0"
 }
 """
background_js = """
var config = {
mode: "fixed_servers",
rules: {
singleProxy: {
   scheme: "http",
   host: "%s",
   port: parseInt(%s)
   },
   bypassList: ["localhost"]
   }
};
chrome.proxy.settings.set({value: config, scope: "regular"}, function() {});

function callbackFn(details) {
    return {
    authCredentials: {
    username: "%s",
    password: "%s"
    }
    };
    }

    chrome.webRequest.onAuthRequired.addListener(
          callbackFn,
          {urls: ["<all_urls>"]},
          ['blocking']
);
""" % (PROXY_HOST, PROXY_PORT, PROXY_USER, PROXY_PASS)
get_chromedriver()

1 个答案:

答案 0 :(得分:0)

我将假定pvars是一个列表,并且我假设ordered_proxies是某种具有多行的集合,例如一个文件。这是你在做什么:

您正在遍历ordered_proxies的行。您正在拆分每一行。函数“ split”返回一个列表,您将其追加到pvars。因此,当循环结束时,pvars是一个复杂的数据结构:它是一个列表列表。

pvars [0]是拆分有序代理的第一行时得到的字符串列表。 pvars [0]的长度等于第一行中用冒号分隔的项目数。

pvars [1]是在拆分ordered_proxies的第二行时得到的字符串列表。

pvars的长度是ordered_proxies中的行数。

print语句告诉您pvars是一个包含一个列表(由内部方括号定界)的列表(这是外部方括号的含义)。双方括号没有“弄乱”任何东西;告诉您pvars的长度为1,并且它的唯一元素是四项列表。

尝试访问pvars中的第二个元素pvars [1]时会出错,因为pvars没有第二个元素。

我无法理解您要执行的操作,但是我可以了解您的代码为何无法正常工作。