【问题标题】:Convert result from mysql to list in python [duplicate]将结果从mysql转换为python中的列表[重复]
【发布时间】:2016-12-28 16:36:06
【问题描述】:

如何将 Mysql 查询的结果转换为 python 中的列表? 这是我到目前为止尝试过的方法

import MySQLdb as mdb

con = mdb.connect('localhost', 'root', 'root', 'sample_db');
with con:
cur = con.cursor()
cur.execute("SELECT site_id FROM positive_outcomes")

for i in range(cur.rowcount):

    row = cur.fetchone()
    print row[0]

【问题讨论】:

    标签: python arrays string


    【解决方案1】:

    你只需要从游标对象中列出整个结果集就可以了

    con = mdb.connect('localhost', 'root', 'root', 'sample_db');
    with con:
    cur = con.cursor()
    cur.execute("SELECT site_id FROM positive_outcomes")
    
    result_set = list(cursor.fetchall())
    
    for result in result_set:
        # do something here
    

    【讨论】:

    • fetchall 已经返回一个列表。无需致电list
    • 是的,但随后决定是通过list(...) 在客户端一次调用所有结果还是逐行迭代它。正如您在对该问题的评论中提到的那样
    • @DeepSpace 'fetchall' 成功了。谢谢。
    【解决方案2】:

    如果你真的需要使用fetchone

    def yield_rows():
        for i in range(cur.rowcount):
    
            row = cur.fetchone()
            yield row[0]
    
    print list(yield_rows())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-03
      • 1970-01-01
      • 2017-10-03
      • 1970-01-01
      相关资源
      最近更新 更多