2016-07-15 1 views
0

私は同じエラーの他のエントリを読み、解決を試みましたが、私のコードでは不運でした。MySQLdb TypeError:すべての引数が変換されていません

columns = ['city', 'state', 'zip', 'latitude', 'longitude'] 
placeholder = '?' 
statement = """LOAD DATA LOCAL INFILE '/Path/To/My/File""" + table_name + """.csv' 
INTO TABLE propertyData.property_""" + table_name + """ 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\\n' 
IGNORE 1 LINES ({})""".format(', '.join(placeholder*len(columns))) 
statement = statement % tuple(columns) 

Traceback (most recent call last): 
File "importer.py", line 59, in <module> 
import_db("site") 
File "importer.py", line 46, in import_db 
print statement % tuple_cols 
TypeError: not all arguments converted during string formatting 

これは私が持っているさまざまなCSVファイルで実行していますが、エラーはありませんが、特にこのファイルが原因の1つです。ファイルの形式は他の形式とまったく同じです。

答えて

0

%演算子を使用した文字列の書式設定では、printf形式の書式文字列(%sではなく、?)を使用する必要があります。したがって、%演算子を使用して列名を補間する場合は、次のようにします。

statement = """LOAD DATA LOCAL INFILE '/Path/To/My/File/{}.csv' 
INTO TABLE propertyData.property_{} 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\\n' 
IGNORE 1 LINES ({})""".format(table_name, table_name, 
           ', '.join(["%s"] * len(columns))) 
statement = statement % tuple(columns) 
+0

ありがとう、ありがとうございます。 – lokidoki

関連する問題