簡體   English   中英

使用 SQL 服務器使用 Pandas 的數據創建 CSV 文件

[英]Creating a CSV file using data from SQL Server using Pandas

我有一個 SQL 服務器數據庫,它保存我需要的材料數據,以便將材料的總使用量輸出到 CSV 文件中。 我可以獲取所有數據並將其打印到終端而不會出現問題,但是當嘗試使用 Pandas 並將其放入具有命名列的 CSV 時,我得到的只是 Pandas 用來自 SQL 的每一行重寫第一行。我還沒有得到 Pandas 來創建 CSV,但我可以在終端中看到它為來自 SQL 的每一行重寫第一行。我正在使用 function 來獲取 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()

我沒有使用 Pandas 和數據框,而是使用 Python 內置的 CSV function。

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}'})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM