如何在for循环中将数据附加到空列表?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在for循环中将数据附加到空列表?相关的知识,希望对你有一定的参考价值。

我的csv文件中有100个URL,我想知道这些URL是否为是否工作,为此,我导入了请求库。当我执行以下代码,我可以看到每个的“状态代码200”网站印刷时。在这里,当我尝试将URL附加到空列表,代码正在打印“此网站无法正常工作”。如何将这些URL分配到空列表?

    import requests
    import pandas as pd
    url_list = pd.read_csv("/home/user/Desktop/websites.csv")
    urls = url_list['URLS']



    def addhttp():

        url_list=[]
        for url in urls:
            try:
                final_url = 'http://' + url
                response = requests.get(final_url)
                if response.status_code is 200:
                    url_list.append(response.url)

                else:
                    print("This website is not working")
            except:
                pass
        print(url_list)


    print(addhttp())
答案

1)您确定所有URL都是http://吗?2)您能告诉我们您* csv的第一行吗3)是否所有网址都不起作用?您是否至少手动检查了其中之一?

另一答案

您需要使用==而不是is,因为这会测试身份而不是值:

final_url = 'http://' + url
response = requests.get(final_url)
if response.status_code == 200:
    url_list.append(response.url)
else:
    print("This website is not working")
另一答案

url_list = pd.read_csv(“ / home / user / Desktop / websites.csv”)和url_list = []

使用相同的变量名

并且您使用“是”而不是“ ==“

并且您在函数末尾不返回任何内容

url_list = '''
repl.it/@bamamo68/WorrisomeTrivialRectangle-1?1
repl.it/@bamamo68/WorrisomeTrivialRectangle-1?2
repl.it/@bamamo68/WorrisomeTrivialRectangle-1?
'''
urls = url_list.splitlines()

def addhttp(urls):
  url_list2=[]
  for url in urls:
      try:
          final_url = 'http://' + url
          response = requests.get(final_url)
          if response.status_code == 200:
              url_list2.append(response.url)
          else:
              print("This website is not working")
      except:
          pass
  return url_list2


print(addhttp(urls))

并且此代码仅在csv文件中的网址不是以“ http://”开头的情况下有效,因为您在以下行中添加了该网址:final_url ='http://'+ url

以上是关于如何在for循环中将数据附加到空列表?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用for循环的情况下从pyspark中的列表创建数据框?

在for循环中将Dataframes附加在一起

在 for 循环中将数据帧附加在一起

使用单行for循环python追加到一个空列表

从python中的for循环返回值

在 Python 中将列表理解转换为 For 循环