【发布时间】:2021-06-25 23:00:57
【问题描述】:
我正在运行一个函数,该函数当前通过从 SQLite 数据库中提取数据来打印字典列表。但是,当使用 return 而不是 print 时,我得到一个错误,因为 sqlite3.Row object at 0x04AD4980 并且没有数据显示(在调试模式下)。
根据我的阅读,为了从 Sql 查询中返回 dict 数据格式,我应该使用 row_factory 我做过并且工作过的仅打印时很好。
请问有什么办法吗?
数据库详情: 数据库名称: 'testDB'
Test_Table:姓名、年龄、出生日期
import sqlite3
def queryData () :
conn = sqlite3.connect ( 'TestDB.db' )
# row_factory to create dictionary cursor
conn.row_factory = sqlite3.Row
cursor = conn.cursor ( )
cursor.execute ( "select * from test_table" )
rows = cursor.fetchall ( )
for row in rows :
return ({ row [ 'name' ] } , { row [ 'age' ] } , { row [ 'dob' ] })
## with print, it works
## print ({ row [ 'name' ] } , { row [ 'age' ] } , { row [ 'dob' ] })
def main () :
queryData ( )
【问题讨论】:
-
哪一行给出了什么错误?贴出的代码不会产生错误(当执行
main并且至少选择了一行时)。 -
返回行给出调试模式下的错误。如果在没有调试模式的情况下执行,你不会看到任何错误
标签: python-3.x sqlite