2017-10-27 49 views
0

私はPythonに統合されたSQLiteを手に入れようとしており、.csvファイル経由でDBに値を挿入しようとしています。私はエラーを取得しています:DUPLICATE COLUMN NAME:Measure。 2つの列が同じ名前で始まっているので、これが起こっていると思います。私が間違っているところのどんなリード?SQLite重複カラム名

enter image description here

for row in reader: 
    if header: 
     header = False 
      sql_query = "DROP TABLE IF EXISTS %s" % tablename 
      cursor.execute(sql_query) 

      sql_query = "CREATE TABLE %s (%s)" % (tablename, 
                 ", ".join([ "%s TEXT" % col for col in row])) 
      cursor.execute(sql_query) 

トレースバックERROR:

File "C:\Users\Rachit-PC\AppData\Local\Continuum\Anaconda3\lib\site- 
    packages\IPython\core\interactiveshell.py", line 2881, in run_code 
     exec(code_obj, self.user_global_ns, self.user_ns) 
     File "<ipython-input-107-6337a434d788>", line 32, in <module> 
     cursor.execute(sql_query) 
    sqlite3.OperationalError: duplicate column name: Measure 
+0

'[ "%sのTEXT" %のcol.replace(」」、 '_')COLのためにありますSQLインジェクションではデザインが弱い – PRMoureu

+0

実際に送られてくるSQLを見てみてください。 – user2864740

+0

@PRMoureu sqlite3.OperationalError:near "%":構文エラー あなたはそれがどういう意味なのかよくわかりません。 – 11fromstrangerthings

答えて

0
CREATE TABLE va_ipshep_apr2017cms_09mar17 (
    Provider ID TEXT, 
    Hospital Name TEXT, 
    ... 

最初の列は、名前Provider、およびタイプID TEXTを有しています。 2番目の列の名前はHospitalで、種類はName TEXTです。

あなたが列名に特殊文字を持つようにしたい場合は、あなたがそれらをquoteする必要があります。

CREATE TABLE va_ipshep_apr2017cms_09mar17 (
    "Provider ID" TEXT, 
    "Hospital Name" TEXT, 
    ... 
関連する問題