>source

pandas 데이터 프레임을 사용하여 CSV를 테이블에로드하려고 할 때 csv 파일이 있습니다. 오류가 발생합니다.

import pyodbc
import pandas as pd
df = pd.read_csv("C:\PYTHON\csv.csv")
conn = pyodbc.connect('Driver=ODBC Driver 17 for SQL Server;'
                      'Server=SIS10647\MSSQLSERVER14;'
                      'Database=LeelaVenkatesh;'
                      'Trusted_Connection=yes;')
cursor = conn.cursor()
for index, row in df.iterrows():
    print(row)
    cursor.execute("INSERT INTO pandas(NAME,DEPART,COLUM) values (?,?,?)", row.NAME, row.DEPART, row.COLUM)
    conn.commit()
    cursor.close()

iam 다음 오류가 발생합니다.

Traceback (most recent call last):
  File "C:/Users/lrangu/PycharmProjects/pythonProject/PANDAS.py", line 10, in <module>
    cursor.execute("INSERT INTO pandas(NAME,DEPART,COLUM) values (?,?,?)", row.NAME, row.DEPART, row.COLUM)
pyodbc.ProgrammingError: ('Invalid parameter type.  param-index=0 param-type=numpy.int64', 'HY105')

  • 답변 # 1

    당신이 얻은 오류에서 :

    pyodbc.ProgrammingError: ('Invalid parameter type. param-index=0 param-type=numpy.int64', 'HY105')

    매개 변수의 일부 요소 ( row.NAME , row.DEPART , row.COLUM )는 numpy.int64 SQL 문의 매개 변수로 직접 사용할 수 없습니다. 그래서,모든 매개 변수가 올 바르고 지원되는 유형인지 확인해야합니다.SQL 문을 실행하기 전에.

    해결책

    데이터 유형을 다음과 같이 지정하십시오. Int64 :

    df = pd.read_csv("C:\PYTHON\csv.csv", dtype="Int64")
    
    

관련 자료

  • 이전 sql server - 와일드 카드로 바꾸기를 사용할 수 있습니까?
  • 다음 c - 연결된 목록의 범프 할당 자