我曾经使用requests
lib通过url加载单行:
import requests
def get_line(url):
resp = requests.get(url, stream=True)
for line in resp.iter_lines(decode_unicode=True):
yield line
line = get_line(url)
print(next(line))
一个文本文件完美加载。但是,如果我要加载.xlsx,结果看起来像是无法打印的符号:
PK [symbols] [Content_Types].xml [symbols]
是否有加载单行单元格的方法?
您不能只读取原始的HTTP
响应并寻找特定的Excel数据。为了获得正确格式的xlsx
文件内容,您需要使用适当的库。
xlrd
是常见的库之一,可以通过pip
进行安装:
sudo pip3 install xlrd
示例:
import requests
import xlrd
example_url = 'http://www.excel-easy.com/examples/excel-files/fibonacci-sequence.xlsx'
r = requests.get(example_url) # make an HTTP request
workbook = xlrd.open_workbook(file_contents=r.content) # open workbook
worksheet = workbook.sheet_by_index(0) # get first sheet
first_row = worksheet.row(0) # you can iterate over rows of a worksheet as well
print(first_row) # list of cells
xlrd documentation
如果您希望能够逐行读取数据,则应切换为更简单的数据表示格式,例如。csv或简单的文本文件。