游标.fetchall()或其他方法fetchone()不起作用

2024-06-25 23:20:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两种方法。。。方法1可以很好地工作,但是方法2 cursor.fetchall()没有显示任何内容,仍然是空的,就像[]。如果我只执行Method2(),它工作正常,只有在我先执行Method1(),然后执行Method2()时才会出现问题

def Method1():
    cursor = db.cursor()
    pocode = ['NWB126280']
    query = "select columnname from dbname.tablename where columnname= %s"
    cursor.execute(query, pocode)
    record = cursor.fetchall()
    cursor.close()
    print(record)


def Method2():
    cursor = db.cursor()
    file = open('path')
    request_json = file.read()
    payload = {'ApiOwner': ApiDetails.ApiOwner, 'RequestBody': request_json, 'ApiKey': 
    ApiDetails.ApiKey}
    response = requests.post(ApiDetails.url, headers=ApiDetails.headers, data=payload)
    response_json = json.loads(response.text)
    pocode = jsonpath.jsonpath(response_json, "$..outputKey")
    query = "select columnname from dbname.tablename where columnname= %s"
    cursor.execute(query, pocode)
    record = cursor.fetchall()
    cursor.close()
    print(record)


Method1()
Method2()

Tags: 方法jsondbresponsedefrecordqueryselect
1条回答
网友
1楼 · 发布于 2024-06-25 23:20:10

在多次尝试之后。我知道在执行新的cursor.fetchall()之前,您必须将(db.commit())事务提交到数据库中。你知道吗

在执行新查询之前始终提交事务。你知道吗

在做了这个更改之后,我的代码按预期工作。你知道吗

def Method1():
    cursor = db.cursor()
    pocode = ['NWB126280']
    query = "select columnname from dbname.tablename where columnname= %s"
    cursor.execute(query, pocode)
    db.commit()
    record = cursor.fetchall()
    cursor.close()
    print(record)


def Method2():
    cursor = db.cursor()
    file = open('path')
    request_json = file.read()
    payload = {'ApiOwner': ApiDetails.ApiOwner, 'RequestBody': request_json, 'ApiKey': 
    ApiDetails.ApiKey}
    response = requests.post(ApiDetails.url, headers=ApiDetails.headers, data=payload)
    response_json = json.loads(response.text)
    pocode = jsonpath.jsonpath(response_json, "$..outputKey")
    query = "select columnname from dbname.tablename where columnname= %s"
    cursor.execute(query, pocode)
    record = cursor.fetchall()
    cursor.close()
    print(record)

相关问题 更多 >