繁体   English   中英

从数据库中查询 python 中 sql 条件的数据

[英]Query data from database on sql condition in python

只是我遇到的一个小问题。 我想做的是使用 function 从数据库中获取列名和数据,它返回两个值,就像return columns, data一样。 我遇到的问题是输出数据。 使用以下代码

for column in build_sql.show_employee_id(registered_employee[0])[1]:
 for detail in [b for b in build_sql.show_employee_id(registered_employee[0])[0].fetchall()]:
  print(column, ":", detail)

印刷品是

Name : ('Andrei', 'Cioban', '09:28:32 (19.12.2020)', 352395729385723, 'wfoaF@fwaic.com', 'AWiofOAWFLAWiufnLIAWUfnliaIUFAWi', 'Employee', '411372')
Surname : ('Andrei', 'Cioban', '09:28:32 (19.12.2020)', 352395729385723, 'wfoaF@fwaic.com', 'AWiofOAWFLAWiufnLIAWUfnliaIUFAWi', 'Employee', '411372')
HiredDate : ('Andrei', 'Cioban', '09:28:32 (19.12.2020)', 352395729385723, 'wfoaF@fwaic.com', 'AWiofOAWFLAWiufnLIAWUfnliaIUFAWi', 'Employee', '411372')
PhoneNumber : ('Andrei', 'Cioban', '09:28:32 (19.12.2020)', 352395729385723, 'wfoaF@fwaic.com', 'AWiofOAWFLAWiufnLIAWUfnliaIUFAWi', 'Employee', '411372')
Email : ('Andrei', 'Cioban', '09:28:32 (19.12.2020)', 352395729385723, 'wfoaF@fwaic.com', 'AWiofOAWFLAWiufnLIAWUfnliaIUFAWi', 'Employee', '411372')
Address : ('Andrei', 'Cioban', '09:28:32 (19.12.2020)', 352395729385723, 'wfoaF@fwaic.com', 'AWiofOAWFLAWiufnLIAWUfnliaIUFAWi', 'Employee', '411372')
Position : ('Andrei', 'Cioban', '09:28:32 (19.12.2020)', 352395729385723, 'wfoaF@fwaic.com', 'AWiofOAWFLAWiufnLIAWUfnliaIUFAWi', 'Employee', '411372')
BadgeID : ('Andrei', 'Cioban', '09:28:32 (19.12.2020)', 352395729385723, 'wfoaF@fwaic.com', 'AWiofOAWFLAWiufnLIAWUfnliaIUFAWi', 'Employee', '411372')

但我希望它像

Name: Andrei
Surname: Cioban
# and so on

编辑:这是查询数据的 sqlite3 代码:

def show_employee_id(ide):
    employee = connection.execute('SELECT Name, Surname, HiredDate, PhoneNumber, Email, Address, Position, BadgeID FROM employees WHERE ID = ?;', (ide,))
    columns = [description[0] for description in employee.description]
    return employee, columns

我怎样才能做到这一点? 我尝试过的方法不起作用。 我不明白为什么在我使用数据库中的数据循环返回元组后它会打印一个元组。

fetchall()为您获取数据库中的行列表。

所以理解列表将只包含fecthall()返回的每个元组(这意味着它是无用的,您可以for detail in fetchall()

因此, detail将从元组列表中获取值,因此在每次循环迭代中, detail将是数据库的一行。

也许您可以使用for row in fetchall遍历fetchall()结果,并使用列上的循环或格式化字符串打印您想要的内容。

暂无
暂无

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

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