[英]List of size 0 with 2 element after retrieving timestamp from sqlite3
con = sqlite3.connect(db_path,isolation_level=None, detect_types=sqlite3.PARSE_DECLTYPES)
cur.execute('SELECT TIMESTAMPSTART,COUNT from COUNTING order by ROWID DESC limit 1;')
print(cur.fetchall())
last_d=cur.fetchall()
print(type(last_d))
print(len(last_d))
print(last_d[0])
该代码的结果如下:
[(datetime.datetime(2019, 4, 8, 21, 49, 5, 675964), 2)]
<type 'list'>
0
Traceback (most recent call last):
File "avg.py", line 70, in <module>
stream.statuses.filter(track='bitcoin')
File "/usr/lib/python2.7/site-packages/twython/streaming/types.py", line 67, in filter
self.streamer._request(url, 'POST', params=params)
File "/usr/lib/python2.7/site-packages/twython/streaming/api.py", line 154, in _request
if self.on_success(data): # pragma: no cover
File "avg.py", line 59, in on_success
update_counter()
File "avg.py", line 38, in update_counter
print(last_d[0])
IndexError: list index out of range
我的数据库如下所示:
CREATE TABLE COUNTING(
ID INTEGER PRIMARY KEY AUTOINCREMENT,
COUNT INT NOT NULL,
KEYWORD TEXT NOT NULL,
TIMESTAMPSTART TIMESTAMP NOT NULL,
TYPE TEXT NOT NULL
);
那么,为什么当我打印列表时它有2个元素,它却说列表的大小还是0? 我只是想从数据库中检索我的时间戳
那是因为您没有返回任何结果。 请注意以下代码的作用。 你有:
print(cur.fetchall())
last_d=cur.fetchall()
print
语句获取所有行,不留任何行供您实际将last_d
变量设置为。 按照这里的规定 , 如果没有行可用,则返回一个空列表 。 您的print
函数将消耗所有行,不保留任何行供实际变量存储,因此为什么返回长度为0
。 删除print
语句,看看会发生什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.