-1
我試圖從API下載csv數據,然後編輯我正在努力獲得不同的功能一起工作。從API下載csv數據
即通過導出鏈接來下載文件,然後通過打開它。
'''
File name: downloadAWR.py
Author: Harry&Joe
Date created: 3/10/17
Date last modified: 5/10/17
Version: 3.6
'''
import requests
import json
import urllib2
import zipfile
import io
import csv
import os
from urllib2 import urlopen, URLError, HTTPError
的getURL()用於創建一個下載鏈接CSV數據,一個鏈接將用戶輸入的數據在這種情況下創建的名稱和日期,這將然後創建一個我們可以用一個鏈接下載數據。鏈接存儲在export_link
def geturl():
#getProjectName
project_name = 'BIMM'
#getApiToken
api_token = "API KEY HERE"
#getStartDate
start_date = '2017-01-01'
#getStopDate
stop_date = '2017-09-01'
url = "https://api.awrcloud.com/get.php?action=export_ranking&project=%s&token=%s&startDate=%s&stopDate=%s" % (project_name,api_token,start_date,stop_date)
export_link = requests.get(url).content
return export_link
dlfile用於實際使用鏈接獲取文件,我們可以操縱和編輯例如刪除列和一些數據。
def dlfile(export_link):
# Open the url
try:
f = urlopen(export_link)
print ("downloading " + export_link)
# Open our local file for writing
with open(os.path.basename(export_link), "wb") as local_file:
local_file.write(f.read())
#handle errors
except HTTPError as e:
print ("HTTP Error:", e.code, export_link)
except URLError as e:
print ("URL Error:", e.reason, export_link)
return f
readdata用於進入文件並打開它供我們使用。
def readdata():
with zipfile.ZipFile(io.BytesIO(zipdata)) as z:
for f in z.filelist:
csvdata = z.read(f)
#reader = csv.reader(io.StringIO(csvdata.decode()))
def main():
#Do something with the csv data
export_link = (geturl())
data = dlfile(export_link)
csvdata = data.readdata()
if __name__ == '__main__':
main()
一般我發現代碼工作,但獨立的鬥爭,當我試圖把它放在一起同步。
歡迎計算器。我可以建議你閱讀這個:https://stackoverflow.com/help/how-to-ask並編輯你的問題到更小的東西。在此之前-1 –