最近需要把 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
中途遇到了需要使用urllib2的时候,后来发现一直安装不上,查了用了以下解决方法:
https://stackoverflow.com/questions/2792650/import-error-no-module-name-urllib2
结果如下所示: