对如何将JSON文件中的值读入Python脚本感到困惑

raogr8fs  于 2022-11-19  发布在  Python
关注(0)|答案(1)|浏览(115)

下面是我的JSON文件:

{
"credentials":
  {
    "server": "0.1.2.3,6666",
    "database": "db", 
    "username": "user",
    "password": "password"
  }
}

下面是我的python脚本,它位于一个单独的文件中:

import pandas as pd
import datatest as dt
import datetime 
import json
import pyodbc

with open(r"path_to_config.json", 'r') as config_file:
    df = json.load(config_file)
    json.load(config_file)
    config = ConfigParser()
    config.read(config_file)

server = ?????

connection_string = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};'
                                   'SERVER='+server+';'
                                   'DATABASE='+database+';'
                                   'UID='+username+';'
                                   'PWD='+password+';')
cursor = connection_string.cursor()

SQL_STATEMENT = "SELECT COUNT(*) FROM table1"
cursor.execute(SQL_STATEMENT)

for i in cursor:
    print(i)

我的问题是我不知道如何从config文件读取"server": "0.1.2.3,6666"值到我的python ODBC脚本中,我在那里写了'SERVER='+server+';'。我如何从json文件插入/读取这个值到我的python脚本中?我必须在python脚本中定义服务器吗?

jchrr9hc

jchrr9hc1#

不确定你使用的是什么版本的python,但是你可以把你的json加载到一个dict中,并从那里构建连接字符串。
类似于:

with open("path_to_config.json") as cfgfile:
    df = json.load(cfgfile)

driver = (
    'DRIVER={ODBC Driver 17 for SQL Server};'
    f"SERVER='{df['credentials']['server']}';"
    f"DATABASE='{df['credentials']['database']}';"
    f"UID='{df['credentials']['username']}';"
    f"PWD='{df['credentials']['password']}';"
)
connection_string = pyodbc.connect(driver)

相关问题