如何使用python访问local.setting.json数据库连接字符串

Mic*_*pán 4 python-3.x azure-functions

我的本地 Azure 函数中有这个 local.settings.json (Http 触发)

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "",
    "FUNCTIONS_WORKER_RUNTIME": "python"
  },
  "ConnectionStrings": {
    "SQLConnectionString": "valid connection string "
  }
}
Run Code Online (Sandbox Code Playgroud)

我想访问变量“SQLConnectionString”并在我的Python3.6代码中使用。我找到了许多使用 C# 访问此变量的指南,但我不太幸运找到如何通过 python 访问此变量。

Har*_*ran 7

您可以通过声明 import os 然后使用来访问这些设置

setting = os.environ["setting-name"]

更多信息 -开发人员参考


Hur*_*hen 7

我刚刚测试了一下,也遇到了同样的错误。您应该修改 local.setting.json 如下:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "",
    "FUNCTIONS_WORKER_RUNTIME": "python",
    "SQLConnectionString": "cnx = mysql.connector.connect(user=\"test@hurytestmysqlserver\", password=\"Password123\", host=\"testmysqlserver.mysql.database.azure.com\", port=3306, database=\"xxx\", .....)"
  }
}
Run Code Online (Sandbox Code Playgroud)

但不是

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "",
    "FUNCTIONS_WORKER_RUNTIME": "python"
  },
  "ConnectionStrings": {
    "SQLConnectionString": "xxxxxxxx"
  }
}
Run Code Online (Sandbox Code Playgroud)

请尝试一下。

作为补充~(本来想提供“os.environ[xxx]”的解决方案,但是看到了HariHaran提供的解决方案,哈哈~)


小智 5

在Python中你需要执行以下操作:

import os
conn = os.environ["ConnectionStrings:SQLConnectionString"]
Run Code Online (Sandbox Code Playgroud)