<sqlite3.Row object at 0x1017fe3f0> 而不是数据库内容

Posted

技术标签:

【中文标题】<sqlite3.Row object at 0x1017fe3f0> 而不是数据库内容【英文标题】:<sqlite3.Row object at 0x1017fe3f0> instead of database contents 【发布时间】:2014-07-14 11:24:36 【问题描述】:

我的模板是这样的:

  % for order in orders %
    <li><h2> order</h2>
  % endfor %

我的路由功能是这样的:

@app.route('/order_history')
def orderhistory():
    db = get_db()
    cur = db.execute('select * from order_items')
    orders = cur.fetchall()
    return render_template('order_history.html', orders = orders)

知道为什么我得到的是行对象位置而不是数据库内容吗?

【问题讨论】:

【参考方案1】:

您需要行获取数据:

% for order in orders %
  <li><h2> order[0] </h2></li>
% endfor %

SQL 查询始终返回包含列的行数据。以上假设您的 SELECT 每行仅返回一列。

如果您有多个列,则必须使用直接索引(order[1]order[3] 等)来处理这些列,或者遍历行以显示列:

% for order in orders %
  <li><h2> order[0] </h2>
      % for column in order %
          % if not loop.first % column <br />% endif %
      % endfor %
  </li>
% endfor %

【讨论】:

除此之外还有其他使用直接索引的选项:&lt;li&gt;&lt;h2&gt; order[0], order[1], order[2] &lt;/h2&gt;?我问的原因是因为它给了我一个奇怪的输出:(1, u'JKL', u'Chilli Peppers') 你在那里使用了一个元组。使用单独的插值, order[0] order[1] 等。

以上是关于<sqlite3.Row object at 0x1017fe3f0> 而不是数据库内容的主要内容,如果未能解决你的问题,请参考以下文章

调用过滤器返回 <filter object at ... > [重复]

MaybeEncodingError:错误发送结果:'<multiprocessing.pool.ExceptionWithTraceback object at 0x0000018F09F33

UnidentifiedImageError: 无法识别图像文件 <_io.BytesIO object at 0x000002154C6AE400>

<__main__.List object at 0x0293B950>,输出结果是这个为啥

ValueError:错误的节点或字符串:<_ast.Name object at 0x0000016835AEE3D0>

当我尝试 print(query) 时,我得到的结果是 <pymongo.cursor.Cursor object at 0x00000273CCF21D90>