我目前正在做一个项目,这个项目要求我从restapi联机获取数据,并将其转储到本地数据库中以供进一步处理。在
API连接到一个在线发票平台,我有点担心脚本的速度。在
目前我的脚本打开一个连接,建立一个发票列表。然后,对于每个发票,脚本将为特定的发票行打开一个连接,并将其转储到另一个列表中。在
我目前正在阅读一个帐户包含9个发票和总共15个发票行。我需要7.4秒才能找回。在
有人能帮我修改代码吗?也许我可以加快一点。在# -*- coding: utf-8 -*-
import requests
from datetime import datetime
token = "b877aff346ec0c7d238c21a6c33929c84b13a110"
def request(accessToken, url):
link = 'https://api.billysbilling.com/v2/' +str(url)
headers= {'X-Access-Token': accessToken}
data = requests.get(link, headers=headers).json()
return data
def invoiceLines(token):
inv = request(accessToken = token, url = "invoices")["invoices"]
idList = []
invoiceLinesList = []
lines = []
for r in inv:
if not r["id"] in idList:
idList.append(r["id"])
invoiceLinesList.append(request(accessToken = token,
url = str("invoiceLines?invoiceId=") +
str(r["id"]))["invoiceLines"])
for invoice in invoiceLinesList:
for line in invoice:
lines.append(line)
return [inv, lines]
start = datetime.now()
data = invoiceLines(token)
print "Time spent - " + str(datetime.now()-start)
print "Invoices - " + str(len(data[0]))
print "Invoice lines - " +str(len(data[1]))
谢谢
亨里克