【问题标题】:How to insert values in a column name with space in sql using python如何使用python在sql中用空格插入列名中的值
【发布时间】:2021-06-09 07:39:11
【问题描述】:

SQL 数据库就像

ID Fname Lname Full Name
1 jon bela jon bela
2 cena dabi cena dabi

我创建了一个名为 Info 的存储过程 我想通过 python 将更多数据插入到这个表中。 我在 csv 文件中读取了一个名为“df”的数据框。我想将 csv 文件值插入 SQL 数据库。

python 代码

    import pyodbc
    import pandas as pd
    
    df = pd.read_csv("file path")
    server = "myservername"
    database = "mydatabasename"
    con = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL server};\
           SERVER =' +server+';\
           DATABASE =' +databse+';\
           Trusted_Connection=yes;')
   cursor = con.cursor()
   for index, row in df.iterrows():
       cursor.execute("INSERT INTO info (ID, Fname, Lname, Full Name) 
       values(?,?,?,?)", row.ID, row.Fname, row.Lname, row.Full Name)


   con.commit()
  

运行此代码后,我收到错误“无效语法”全名。 如何使用空格访问列名

【问题讨论】:

    标签: python sql stored-procedures


    【解决方案1】:

    不确定答案是否仍然相关,但是,由于之前的答案不正确,以下解决方案可能对面临此问题的其他人有所帮助。

    假设列名不包含在文件中,将数据从 csv 文件插入 sql:

    import csv
    import pyodbc
    
    server = "myservername"
    database = "mydatabasename"
    
    con = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL server};\
               SERVER =' +server+';\
               DATABASE =' +databse+';\
               Trusted_Connection=yes;')
    
    with open ('file path', 'r') as f:
        reader = csv.reader(f)
        data = next(reader)
        query = 'INSERT INTO database values ({0})'
        query = query.format(','.join('?' * len(data)))
        cursor = conn.cursor()
        for data in reader:
            cursor.execute(query, data)
        cursor.commit()
    

    【讨论】:

      【解决方案2】:

      row.Full Name 应该是row['Full Name'] 也在你的sql查询中使用[Full Name]"Full Name"(在python中使用三重""" INSERT .... """当使用""作为列名)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-11
        • 1970-01-01
        • 2020-08-14
        • 1970-01-01
        • 2015-01-22
        • 1970-01-01
        相关资源
        最近更新 更多