为了进一步研究 python 中的数据库使用,我根据 Bryan Moyles 的优秀示例提出了以下代码:
from os import system as cmd
from time import sleep as sleep
try:
from sqlite3 import dbapi2 as sqlite
except ImportError:
from pysqlite2 import dbapi2 as sqlite
class search_db:
def __init__(self, db, name):
self.db = db_connection
self.name = name
self.dbc = self.db.cursor()
def __getitem__(self, item):
self.dbc.execute("select * from %s limit %s, 1" % (self.name, item))
return self.dbc.fetchone()
def search():
customer_id = []
customer_ids = search_db(db_connection, "customers")
for i in range(10000):
if not "None" in str(customer_ids[i]): customer_id.append(customer_ids[i])
return customer_id
## init ##
db_name = 'customers'
db_connection = sqlite.connect('program.db')
db_curs = db_connection.cursor()
search()
当然,这没什么了不起的,我知道我可能可以再优化一点;但正如您所看到的,我一直在努力弄清楚如何搜索数据库。我设法在数据库中检索到包含信息的条目,从而提取出一个条目号。我正在考虑使用 if 循环在附加的列表值中搜索“GGS-编号”条目,然后使用正则表达式提取行号 - 然后打印与 GGS 编号适用的客户相关的信息。有没有人知道如何以更好的方式做到这一点?另外,我有一个 for i in range(10000),有没有更优化的形式?