带有Python的Sqlite3返回额外的数据

8675309

我正在一个个人项目上,通过创建DVD库存应用程序来学习将SQLite3与Python结合使用。我与SQLite相关的函数取得了一些成功,这些函数位于库文件中,并打算从应用程序的其他部分调用。

我在查询中返回无关数据时遇到了问题,在这种情况下,同一数据两次。

我正在测试一个仅查询表并返回其所有值的函数。如果我从驻留在库文件中的调用运行该函数,则它可以正常工作,但是如果从导入该库文件的外部文件调用该函数,它将返回两次数据,我不确定为什么。

功能如下:

def query_all():
con = db_connect()
cur = con.cursor()
cur.execute('''SELECT film_id, film_name, film_genre, date_added FROM 
film_inv''')
all_rows = cur.fetchall()
for row in all_rows:
    print('{0} : {1}, {2}, {3}'.format(row[0], row[1], row[2], row[3]))
con.close()

从库文件中运行时,它将返回以下正确结果:

1 : Star Wars, Comedy, 2018-11-15 12:23:28
2 : Titanic, Drama, 2018-11-15 12:28:55
3 : Cars, Family, 2018-11-15 12:29:18
4 : Christmas Vacation, Holiday, 2018-11-15 12:37:59
6 : Cinderella, Family, 2018-11-15 12:43:13

Process finished with exit code 0

通过外部文件调用时,它将返回两次结果:

try:
    pydvd_utils.query_all()
except Exception as e:
    print(e)

1 : Star Wars, Comedy, 2018-11-15 12:23:28
2 : Titanic, Drama, 2018-11-15 12:28:55
3 : Cars, Family, 2018-11-15 12:29:18
4 : Christmas Vacation, Holiday, 2018-11-15 12:37:59
6 : Cinderella, Family, 2018-11-15 12:43:13
1 : Star Wars, Comedy, 2018-11-15 12:23:28
2 : Titanic, Drama, 2018-11-15 12:28:55
3 : Cars, Family, 2018-11-15 12:29:18
4 : Christmas Vacation, Holiday, 2018-11-15 12:37:59
6 : Cinderella, Family, 2018-11-15 12:43:13

Process finished with exit code 0

外部文件query_all.py很简单,仅调用以下函数:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import pydvd_utils

try:
    pydvd_utils.query_all()
except Exception as e:
    print(e)
8675309

面对手掌的时刻!

由于PEBKAC错误,该功能肯定运行了两次。

我在库中调用了用于直接测试的函数,但未将其注释掉。从外部调用该函数将运行该函数,然后再调用同时存在于库文件中的该函数。

注释掉对库中函数的测试调用即可解决该问题。

谢谢大家的指导。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从带有标题python3的sqlite返回数据

带有SQLite3的Python:select不显示任何数据

带有参数的Python SQlite3插入

带有冒号查找的Python SQLite3 Mac地址

python sqlite3查询结果中的额外字符

如何使用带有参数化占位符的sqlite3 Python库创建SQLite表?

带有SQLITE3的GO API无法从数据库中删除元组

如何显示带有电子5和angular8的sqlite3的数据

如何在 Kuberenets pod 上使用带有 Django 的 sqlite3 数据库

使用ʻexecutemany`更新现有SQLite3数据库中的条目(使用Python sqlite3)

Python数据库sqlite3

在sqlite3数据库中检查重复项,如果有则返回错误

两个函数在带有 sqlite3 的 tkinter python 中无法正常工作

Python SQLite3:无法在查询中创建带有变量的表

在Python中使用带有“ WITH”关键字的sqlite3

sqlite3 select哪种类型的数据在python中返回?

Python 和 SQLite3 - 将数据导入现有数据库

Python sqlite3从不返回具有2800万行以上的内部联接

sqlite3 view()打印带有空列表?

带有 JRuby 和 Sequel 的 SQLite3

lastrowid在python 3的sqlite3中返回None

SQLITE3与Python

的Python:sqlite3

带有 sqlite3 数据库存储问题的简单 CLI 待办事项管理器

带有PHP的SQLite3如何将列与其他列中的数据进行交叉引用

带有对象/字符串的PHP数据查询错误,现在为SQLite3构造

python,SQLite3 显示现有表和数据

具有Sqlite3的数据库

带有额外字符的 SQLite 模式匹配