我曾经使用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]
有没有办法加载单行单元格?
答案 0 :(得分:2)
您不能只阅读原始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 或简单文本文件。