python 从url中获取csv或npy内容 (python get the content of csv or npy from url)

 

最近需要把 python 函数打包成一个 API 接口形式,在此过程中主要使用了 flask web 框架,此外,在访问网址数据的时候,需要获取给定网址中数据的内容,我需要读取内容的是 csv 文件和 npy 文件,查阅了资料找到了 python 根据 url 地址链接得到 csv 数据和 npy 数据内容的方法,分享给大家。

python 从 url 网址中获取 csv 和 npy 文件内容代码:

 1 import requests
 2 import numpy as np
 3 from urllib.request import urlopen
 4 import io
 5 
 6 # -------------- 根据url获取csv文件内容并且转换成数组 -------------- #
 7 def url_csv_to_array(url):
 8     response = urlopen(url)
 9     url_content = response.read()
10     url_content_decode = url_content.decode()
11     url_content_list = url_content_decode.split("
")
12     url_data = []
13     for row in url_content_list[:-1]:
14         row_split = row.split(",")
15         url_data.append([int(i) for i in row_split])
16     url_data_arry = np.array(url_data, dtype=np.int16)
17     return url_data_arry
18     
19 
20 url_csv = "http://oies-fi/../../point.csv"
21 url_data_csv = url_csv_to_array(url_csv)
22 print("url_data_csv = ", url_data_csv)
23 
24 
25 # -------------- 根据url获取npy文件内容 -------------- #
26 def url_read_npy(url_npy):
27     response = requests.get(url_npy)
28     # 判断返回的Response类型状态是不是200。如果是200,他将表示返回的内容是正确的,如果不是200,他就会产生一个HttpError的异常。
29     response.raise_for_status()
30     npy_data = np.load(io.BytesIO(response.content))
31     return npy_data
32 
33 
34 url_npy = "http://oies-fi/../../B004_tr.npy"
35 url_data_npy = url_read_npy(url_npy)
36 print("url_data_npy = ", url_data_npy)

参考资料:

https://stackoverflow.com/questions/16283799/how-to-read-a-csv-file-from-a-url-with-python

https://stackoverflow.com/questions/52884563/loading-numpy-array-from-http-response-without-saving-a-file/61716809#61716809

中途遇到了需要使用urllib2的时候,后来发现一直安装不上,查了用了以下解决方法:

https://stackoverflow.com/questions/2792650/import-error-no-module-name-urllib2

结果如下所示:

 

原文地址:https://www.cnblogs.com/ttweixiao-IT-program/p/14150935.html