【问题标题】:Azure Timer Function API Call to Azure SQLAzure 计时器函数 API 调用 Azure SQL
【发布时间】:2021-03-21 17:14:20
【问题描述】:

我对 Azure 和 Azure 函数非常陌生,所以请保持温和。 :-)

我正在尝试编写一个 Azure 计时器函数(使用 Python),它将获取 API 调用返回的结果并将结果插入到 Azure SQL 中的表中。

我几乎一无所知。如果有人愿意在整个过程中帮助我,将不胜感激。

我已经编写了 API 调用,所以这部分已经完成。我完全不明白的是如何从返回到 Azure SQL 的内容中获取结果。

我返回的结果集是 Pandas 数据框的形式。

再一次,任何和所有的帮助都将是惊人的!

谢谢!!!!

【问题讨论】:

    标签: python azure azure-functions


    【解决方案1】:

    这是一个将 panda 数据结构写入 SQL 表的示例:

    import pyodbc
    import pandas as pd
    # insert data from csv file into dataframe.
    # working directory for csv file: type "pwd" in Azure Data Studio or Linux
    # working directory in Windows c:\users\username
    df = pd.read_csv("c:\\user\\username\department.csv")
    # Some other example server values are
    # server = 'localhost\sqlexpress' # for a named instance
    # server = 'myserver,port' # to specify an alternate port
    server = 'yourservername' 
    database = 'AdventureWorks' 
    username = 'username' 
    password = 'yourpassword' 
    cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
    cursor = cnxn.cursor()
    # Insert Dataframe into SQL Server:
    for index, row in df.iterrows():
        cursor.execute("INSERT INTO HumanResources.DepartmentTest (DepartmentID,Name,GroupName) values(?,?,?)", row.DepartmentID, row.Name, row.GroupName)
    cnxn.commit()
    cursor.close()
    

    要使其适用于您的案例,您需要:

    • 用您的函数调用替换从 csv 文件中读取的内容
    • 更改插入语句以匹配 SQL 表的结构。

    更多详情见:https://docs.microsoft.com/en-us/sql/machine-learning/data-exploration/python-dataframe-sql-server?view=sql-server-ver15

    【讨论】:

    • 谢谢!!!!我要试一试,并会回复。我完全缺少的东西(我想我应该得到,因为这是我在插入本地数据库时所做的)是光标和 iterrows 部分。你不知道我是多么感激这个!!!!
    • 我一直遇到一个我似乎无法克服的错误。我设置了所有数据类型并确保所有列名都相同,但我不断收到以下错误。 ProgrammingError: ('42S22', "[42S22] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]列名'propertyid'无效。(207) (SQLExecDirectW); [42S22] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]无法准备语句。(8180)") 想法?
    • 既然是和 id 字段,可能是您试图将数据插入到自动增量属性中。这也可能是区分大小写的问题。字段名称是“Propertyid”
    猜你喜欢
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 2019-10-31
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多