Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 而列表长度为<;100_Python - Fatal编程技术网

Python 而列表长度为<;100

Python 而列表长度为<;100,python,Python,我正在努力使这个while循环在python中工作 urlList = [] while True: for r in range(1, 5000): try: response = urllib.request.urlopen('www.somewebsite.com/v0/info/' + str(r) + '.json') html = response.read().decode('utf-8')

我正在努力使这个while循环在python中工作

urlList = []
while True: 
    for r in range(1, 5000):
        try:
            response =  urllib.request.urlopen('www.somewebsite.com/v0/info/' + str(r) + '.json')
            html = response.read().decode('utf-8')
            data = json.loads(html)
            if 'url' in data:
                urlList.append(data['url'])
                if len(urlList) == 100: break
        except urllib.error.HTTPError as err:
            print (err)
            continue
print (urlList)
当前,如果列表长度等于100,则if语句将中断while循环。它抛出一个奇怪的错误urllib.error.URLError:

我也试过了,而len(URL列表)!=100,使进程无法运行。同时,len(urlist)<100只会使它在整个范围内运行

您的URL无效

response =  urllib.request.urlopen('www.somewebsite.com' + str(r) + '.json')
这就变成了:

www.somewebsite.com1.json
www.somewebsite.com2.json
www.somewebsite.com3.json
...
这些无效URL引发
urllib.error.HTTPError
错误


现在您已经更正了url,上面的内容无效。您遇到的问题是因为
中断
正在打破您的内部循环(用于的
),并将您放入
的循环中,这将再次重复所有内容

尝试更改代码,使其更像这样:

urlList = []
for r in range(1, 5000):
     response = ......
     ...
     if 'url' in data:
            urlList.append(data['url'])
            if len(urlList) == 100: break
这将删除
while
循环。它保持范围,这似乎对你的URL很重要。当列表大小达到100时,它将打破这个循环。

您的URL无效

response =  urllib.request.urlopen('www.somewebsite.com' + str(r) + '.json')
这就变成了:

www.somewebsite.com1.json
www.somewebsite.com2.json
www.somewebsite.com3.json
...
这些无效URL引发
urllib.error.HTTPError
错误


现在您已经更正了url,上面的内容无效。您遇到的问题是因为
中断
正在打破您的内部循环(用于
),并将您放入
的循环中,这将再次重复所有内容

尝试更改代码,使其更像这样:

urlList = []
for r in range(1, 5000):
     response = ......
     ...
     if 'url' in data:
            urlList.append(data['url'])
            if len(urlList) == 100: break

这将删除
while
循环。它保持范围,这似乎对你的URL很重要。当列表的大小达到100时,它将从这个单循环中断。

您有两个循环,但只中断一次


您应该保持中断状态,就像中断for循环一样,但是while也应该有条件,因为您编写了
while len(urlist)您有2个循环,但只中断一次


你应该保持你的中断,因为它是中断for循环,但是while也应该有条件,因为你写
while len(urlist)对不起,我不清楚你在问什么。-
'www.somewebsite.com'+str(r)+'.json'
是一个真正的url吗?不,它是一个内部url somewebsite.com是一个占位符,存储了一堆json文件,这些文件都是1.json 2.json 3.json等等。
www.somewebsite.com'+str(r)+'.json
会给你一个格式错误的url,你需要在域和文件之间有一个
,没有?你面临的确切问题是什么?好的,为了更准确,我附加了URL。对不起,我不清楚你在问什么。-
'www.somewebsite.com'+str(r)+'.json'
是一个真正的url吗?不,它是一个内部url somewebsite.com是一个占位符,存储了一堆json文件,这些文件都是1.json 2.json 3.json等等。
www.somewebsite.com'+str(r)+'.json
会给你一个格式错误的url,你需要在域和文件之间有一个
,没有?你面临的确切问题是什么?好的,我添加了URL以更加准确完美!谢谢,伙计,我不知道你们可以在射程上休息一下……答题时有一个2分钟的计时器……太棒了!谢谢,伙计,我不知道你可以在靶场上休息……答案是在打标时有一个2分钟的计时器。。。。。