繁体   English   中英

Python SQLITE3 UPDATE给出“无”作为输出

[英]Python SQLITE3 UPDATE gives 'None' as the output

如果先前已回答过类似的问题,我深表歉意,但我是SQLITE3的初学者(一天的时间),我似乎真的无法理解我在这里做错了什么。

我的表格(3列,即{A1,A2,W}):

A1 A2 W
12 67 0
15 01 0

Code:

import sqlite3
import pandas as pd
df = pd.read_csv('/Users/advaitbalaji/Desktop/p.txt', sep = '\t', header = 0)
df.head()
connex = sqlite3.connect('database.db')
cur = connex.cursor()
df.to_sql(name = 'database', con = connex, if_exists = 'replace', index = False)
cur.execute("SELECT Weights FROM database WHERE A1 = 12 AND A2 = 67")
k = cur.fetchone()
print(k)
cur.execute("UPDATE database SET W = W + 1 WHERE A1 = 12 AND 2 = 67")
k = cur.fetchone()
print(k)
connex.commit()


Output:  
 (0,)  
 None

我什至对代码进行了以下更改,但输出保持不变:

cur.execute("SELECT Weights FROM database WHERE A1 = 12 AND A2 = 67")
k = cur.fetchone()
print(k)
cur.execute("UPDATE database SET W = ? WHERE A1 = 12 AND A2 = 67",(k[0]+1,))
k = cur.fetchone()
print(k)
connex.commit()

Output:
 (0,)
 None

我似乎无法弄清楚为什么我的输出不如下:

Desired Output:
(0,)
(1,)

您正在设置游标以执行更新,以返回结果元组,您将需要让游标再次执行一次选择查询。 如果您在开始时为相同的select子句复制了相同的条件,则它应返回预期的结果。

cur.execute("SELECT W FROM database WHERE A1 = 12 AND A2 = 67")
k = cur.fetchone()
print(k)
cur.execute("UPDATE database SET W = ? WHERE A1 = 12 AND A2 = 67",(k[0]+1,))
cur.execute("SELECT W FROM database WHERE A1 = 12 AND A2 = 67")
k = cur.fetchone()
print(k)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM