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

python-sql查询不返回任何内容,python,Python,我的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 (+3

我的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'
也不会返回任何内容,因此我的pythonic代码似乎不想解析作业名称。

在下一行中

jobid = query_db(sql_jobid, (o['Job Name'][0]))
(o['Job Name'][0])
不是元组。如果要传递元组,则需要附加一个尾随逗号

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

谢谢你给我指明了正确的方向!这不完全是。我不需要逗号,但我也不需要[0]@因为
o['Job Name']
本身是一种序列对象?o['Job Name']在json文件中返回一个值。