【问题标题】:Creating a CSV file using data from SQL Server using Pandas使用 Pandas 使用 SQL Server 中的数据创建 CSV 文件
【发布时间】:2020-08-19 19:30:06
【问题描述】:

我有一个 SQL Server 数据库,其中保存着材料数据,我需要将材料的总使用量输出到 CSV 文件中。我可以毫无问题地获取所有数据并将其打印到终端,但是当尝试使用 Pandas 并将其放入带有命名列的 CSV 时,我得到的只是 Pandas 用 SQL 中的每一行重写第一行。我还没有让 Pandas 创建 CSV,但我可以在终端为来自 SQL 的每一行重写第一行时看到它。我正在使用一个函数从 SQL 中取出每一行。

import pyodbc
import pandas as pd
def checkmaterials():

    server_name = '********'
    db_name = '********'
    username = '********'
    password = '********'

    conn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=' + server_name + '\WEMSQLEngine' ';DATABASE=' + db_name + ';UID=' + username + ';PWD=' + password + '')
    #if conn is not None:
        #print('Connected to SQL')

    cursor = conn.cursor()
    query = cursor.execute("SELECT * FROM MATERIAL")
    data = query.fetchall()
    for row in data:
      MatCode = row[0]
      IngName = row[1]
      Receipt1 = row[4]
      Usage1 = row[6]

      #This print statement prints each line to terminal and does the math to get usage correctly
      #print (f'Daily {MatCode} {IngName} {dailyusage(Usage1,Receipt1)} lbs')

      df = pd.DataFrame(query, columns=[MatCode,IngName,Receipt1,Usage1])
      #print (df)

def dailyusage(Usage1, Receipt1):
    return Usage1 - Receipt1

checkmaterials()

【问题讨论】:

标签: python sql-server pandas csv


【解决方案1】:

我最终没有使用 Pandas 和数据框,而是使用 Python 的内置 CSV 函数。

file_exists = os.path.isfile(f'{Filename}.csv')
    with open(f'{Filename}.csv', 'a+', newline='') as csvfile:
        fieldnames = ['column 1', 'column 2','Column 3']
        writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
        if not file_exists:
            writer.writeheader()
        writer.writerow({'Column 1' f'{data variable}', 'Column 2': f'{data variable}', 'Column 3': f'{data variable}'})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多