gpt4 book ai didi

python - sql查询不返回任何内容

转载 作者:太空宇宙 更新时间:2023-11-03 17:36:57 26 4
gpt4 key购买 nike

我的 json 看起来像这样 -

[
{
"Monitor Level":"1",
"Estimate SLA (+30)":"214",
"New Schedule":"",
"Job Name":"\\Job1\\jobgroup",
"Estimated Duration":"183",
"Actual Duration":"184"
},
{
"Monitor Level":"1",
"Estimate SLA (+30)":"179",
"New Schedule":"8:00 PM",
"Job Name":"\\Job2\\jobgroup",
"Estimated Duration":"1349",
"Actual Duration":"1349"
}
]

我运行以下代码 -

for o in json_object:
# get jobid
db = pyodbc.connect('DRIVER={SQL Server};SERVER=dvidbsql01\dev2008;DATABASE=Admiral;UID=Tidal;PWD=tidal97')
cur = db.cursor()
cur.execute("""select jobmst_id from jobmst where jobmst_prntname + '\\' + jobmst_name = ?""", o['Job Name'])
r= cur.fetchall()
print r

并且r返回我想要的值。

如果我使用我想要的代码 -

sql_jobid = """
select jobmst_id 'Job ID' from jobmst where jobmst_prntname + '\\' + jobmst_name = ?
"""

## DEFINE ENVIRONMENT DATABASES
def db():
if args.environment == 'DEV':
return pyodbc.connect('DRIVER={SQL Server};SERVER=server\instance;DATABASE=db;UID=user;PWD=pass')

## DEFINE UPDATE
def query_db(query, args=(), one=False):
cur = db().cursor()
cur.execute(query, args)
r = [dict((cur.description[i][0], value) \
for i, value in enumerate(row)) for row in cur.fetchall()]
cur.connection.close()
return (r[0] if r else None) if one else r

for o in json_object:
# get jobid
jobid = query_db(sql_jobid, (o['Job Name'][0]))
print jobid

尽管它在做同样的事情,但它没有打印我想要的值。即使将 o['Job Name'][0] 替换为 'Job1\jobgroup' 仍然不会返回任何内容,所以这与我的更具Python风格的代码似乎不一样想要解析作业名称。

最佳答案

在下面的行中,

jobid = query_db(sql_jobid, (o['Job Name'][0]))

(o['Job Name'][0]) 不是元组。如果你想传递一个元组,你需要在后面添加一个逗号。

jobid = query_db(sql_jobid, (o['Job Name'][0],))
# ^

关于python - sql查询不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31084055/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com