使用Python将数据从REST API导入SQL DB的更好方法?

我编写了一些 python 代码,用于从 rest api 中提取数据,并将其加载到 Azure SQL 数据库中。但这个过程需要20,000条生产线近半个小时。有没有更有效的方法可以做到这一点?我想也许可以将数据提取为json文件并将其放在blob storate中,然后使用azure数据工厂将数据加载到SQL中,但不知道如何以这种方式编码。


def manualJournalLineItems(tenantid):

endpoint = "api.xro/2.0/manualjournals/?page=1"


result = (getAPI(endpoint,token,tenantid))

page = 1

while result['ManualJournals']:

    endpoint = "api.xro/2.0/manualjournals/?page="+str(page)

    result = (getAPI(endpoint,token,tenantid))

    for inv in result['ManualJournals']:

        for li in inv['JournalLines']:

            cursor.execute("INSERT INTO [server].dbo.[Xero_ManualJournalLines](ManualJournalID,AccountID,Description,LineAmount,TaxAmount,AccountCode,Region) VALUES(?,?,?,?,?,?,?)",inv['ManualJournalID'],li['AccountID'],li.get('Description',''),li.get('LineAmount',0),li.get('TaxAmount',0),li.get('AccountCode',0),tenantid)

            conn.commit()

    page = int(page)+1


GCT1015
浏览 103回答 2
2回答

暮色呼如

如果 Python 不是必需的要求,则可以使用数据工厂。您需要使用以下组件创建管道:“复制数据”活动Source Dataset (REST API)Sink Dataset (Azure SQL)** 另外,我可以知道您的 REST API 托管在哪里吗?它是否通过应用服务在 Azure 中?如果没有,则还需要设置 [自承载集成运行时]1可以参考此处将数据从 Blob 存储复制到 Azure SQL 的步骤您也可以按照下面的屏幕截图进行操作,即将创建 REST API 作为源。创建新的管道。在“活动”搜索框中输入“复制”。将“复制数据”活动拖到管道中单击“源”选项卡,然后单击“新建”以创建新的源数据集。在“数据源”搜索框中键入“REST”。在“REST”数据集窗口中,单击“连接”选项卡。单击“新建”以创建指向 REST API 的链接服务。在此处填写 REST API 的凭据。继续设置接收器数据集以指向 Azure SQL,并测试管道以确保其正常工作。希望它有帮助!

MYYA

找到了答案。将值追加() 到列表中,并使用 executemany() 将列表插入 SQL 中
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python