Python 提取 mysql 到 csv

标签 python mysql sql csv

我试图从 mysql 中提取数据到 csv 文件。问题是行与 mysql 中的顺序不同。

在 mysql 中,我在 uid 表 1,2,3,4,5,6,7,8,9,10,11 中有这个,但响应是 10,9,11,2,1,4,3, 6,5,8,7。

cursor=conn.cursor()
cursor.execute("SELECT * FROM test ORDER BY uid;")
rows = cursor.fetchall()

#rows = sorted(rows1)
allResults = {}
for row in rows:
#for row in rows:
    uid = str(row[0])
    data = str(row[1])

    allResults[uid] = [uid,data]

    #numbers.append(allResults)


return allResults


def getCSV():

    if request.method == 'POST':
        nr = str(request.form['nrsearch']).strip()
        try = str(request.form['trysearch']).strip()
        year = str(request.form['yearsearch']).strip()

        allResults = readFromDBCSV(nr, try, year)
        #print(allResults)

        filename = str(nr)+"."+str(try)+"."+str(year)+'.csv'

        if len(allResults) > 0:
            with open('static/CSV/'+str(filename), 'wb') as csvfile:
                CSVwriter = csv.writer(csvfile, delimiter=';', quotechar='|', quoting=csv.QUOTE_MINIMAL)
                CSVwriter.writerow(['test'])
                for result in allResults:
                    CSVwriter.writerow(allResults[result])
            return '''DONE '''+str(len(allResults))+''' RESULTS<br>
    <form method=post enctype=multipart/form-data action="/doneCSV/">
    <input type="hidden" name="filename" value="'''+str(filename)+'''">
    <input type=submit name="Download CSV" value="Download CSV"><br>
    <a href="/getCSV/">Return</a>'''
    else:   
    return 'NO RESULTS<br><a href="/getCSV/">Return</a>'

    return render_template('searchCSV.html')

最佳答案

Python 字典是无序的——这在 FWIW 中有记录。如果您想保持插入顺序,请使用 collection.OrderedDict 而不是 dict

现在对于您的用例,解决方案要简单得多:根本不要使用字典,要么使用 cursor.fetchall() 返回的列表,要么更好的是,只传递您的游标到作者(游标是可迭代的)。

cursor.execute(your_query_here)
with open(path/to/file.csv, "wb") as f:
    writer = csv.writer(f, ....)
    writer.writerows(cursor)

关于Python 提取 mysql 到 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50810204/

相关文章:

python - Numpy 和 PyTables 的浮点异常

Python duckduckgo 库未安装

javascript - jquery get 语法与 php 和 mysql 进行输入验证

php - 在 MySQL/Laravel 中同时执行更新和检查重复项

sql - 统计 PostgreSQL 中枚举的所有值

sql - 数据库设计,哪个表有外键

python - 如何为 C 分配的 numpy 数组注册析构函数?

python - 使用 Python 将分隔字符串和值转换为分层 JSON

php - 将 CSV 插入 MySQL

php - 通过查询或 php 将来自 MySQL 的消息按主题分组