python - 在Python列表中导入Excel列

标签 python excel python-requests xlrd

嗨,我有一个只有 1 列的 Excel 工作表,我想将该列导入到 python 中的列表中。 该列中有 5 个元素,全部包含类似“http://dl.dropboxusercontent.com/sh/hk7l7t1ead5bd7d/AAACc6yA_4MhwbaxX_dizyg3a/NT51-177/DPS_0321.jpg?dl=0 ”的 url。

我的代码

import requests
import csv
import xlrd

ls = []
ls1 = ['01.jpg','02.jpg','03.jpg','04.jpg','05.jpg','06.jpg']
wb = xlrd.open_workbook('Book1.xls')
ws = wb.sheet_by_name('Book1')
num_rows = ws.nrows - 1
curr_row = -1
while (curr_row < num_rows):
    curr_row += 1
    row = ws.row(curr_row)
    ls.append(row)

for each in ls:
    urlFetch = requests.get(each)
    img = urlFetch.content
    for x in ls1:
        file = open(x,'wb') 
        file.write(img)
        file.close()

现在它给了我错误:

Traceback (most recent call last):
  File     "C:\Users\Prime\Documents\NetBeansProjects\Python_File_Retrieve\src\python_file_retrieve.py", line   18, in <module>
urlFetch = requests.get(each)
  File "c:\Python34\lib\site-packages\requests-2.5.0-py3.4.egg\requests\api.py", line 65, in get
return request('get', url, **kwargs)
  File "c:\Python34\lib\site-packages\requests-2.5.0-py3.4.egg\requests\api.py", line 49, in request
response = session.request(method=method, url=url, **kwargs)
  File "c:\Python34\lib\site-packages\requests-2.5.0-py3.4.egg\requests\sessions.py", line 461, in request
    resp = self.send(prep, **send_kwargs)
  File "c:\Python34\lib\site-packages\requests-2.5.0-py3.4.egg\requests\sessions.py", line 567, in send
    adapter = self.get_adapter(url=request.url)
  File "c:\Python34\lib\site-packages\requests-2.5.0-py3.4.egg\requests\sessions.py", line 646, in get_adapter
    raise InvalidSchema("No connection adapters were found for '%s'" % url)
requests.exceptions.InvalidSchema: No connection adapters were found for '[text:'https://dl.dropboxusercontent.com/sh/hk7l7t1ead5bd7d/AAACc6yA_4MhwbaxX_dizyg3a/NT51-177/DPS_0321.jpg?dl=0']'

请帮忙

最佳答案

您的问题不在于读取 Excel 文件,而在于解析其中的内容。请注意,您的错误是从 Requests 库中抛出的?

requests.exceptions.InvalidSchema: No connection adapters were found for <url>

从错误中我们了解到,您从 Excel 文件中的每个单元格获取的 URL 也有一个 [text: 前缀 -

'[text:'https://dl.dropboxusercontent.com/sh/hk7l7t1ead5bd7d/AAACc6yA_4MhwbaxX_dizyg3a/NT51-177/DPS_0321.jpg?dl=0']'

这是 Requests 无法处理的,因为它不知道 URL 的协议(protocol)。 如果你这样做

requests.get('https://dl.dropboxusercontent.com/sh/hk7l7t1ead5bd7d/AAACc6yA_4MhwbaxX_dizyg3a/NT51-177/DPS_0321.jpg?dl=0')

您会得到适当的结果。

您需要做的只是从单元格中提取 URL。 如果您遇到问题,请向我们提供 Excel 文件中 URL 的示例

关于python - 在Python列表中导入Excel列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27654433/

相关文章:

python - 使用Python的requests库代替cURL

python-3.x - 设置 Azure 环境凭据()

c# - VSTO 另存为文件已锁定

python - 解析 boto3 输出 JSON

python - 从 Python 2.7.6 中的 stdin 读取。 Sys.stdout.flush() 和 python -u 不起作用

python - 使用两个正则表达式加倍时遇到问题

excel - 不同系统中的日期格式 excel 德语到英语

vba - 如何用 VBA 语法(不是 Excel 公式)编写数组公式

python请求.status_code未返回正确的值

Python 请求 - 发送 null 作为查询参数值