【问题标题】:Why is recordset result being returned in this way for Python database query?为什么 Python 数据库查询会以这种方式返回记录集结果?
【发布时间】:2010-04-27 17:21:25
【问题描述】:

我已经搜索了高和低的答案,以了解为什么以这种格式返回查询结果以及如何转换为列表。

data = cursor.fetchall()

当我打印数据时,它会导致: (('car',), ('boat',), ('plane',), ('truck',))

我希望将结果列在 ["car", "boat", "plane", "truck"]

【问题讨论】:

    标签: python mysql list recordset


    【解决方案1】:

    它以这种方式返回它,因为记录集由多行数据组成,而不是单个元素的列表。

    如果您想使用列表推导,可以将其展平:

    data = [row[0] for row in cursor.fetchall()]
    

    【讨论】:

      【解决方案2】:

      fetchall() 的结果返回一个行数组,其中每一行是一个数组,每列一个值。

      即使你只选择一列,你仍然会得到一个数组数组,但每一行只有一个值。

      【讨论】:

        【解决方案3】:
        x = (('car',), ('boat',), ('plane',), ('truck',))
        
        y = [z[0] for z in x] # ['car', 'boat', 'plane', 'truck']
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-06-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-06-22
          • 1970-01-01
          相关资源
          最近更新 更多