我已阅读同一错误的其他条目,并尝试过他们的解决方案,但我的代码没有运气。
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文件上运行它,并且它们没有错误,但特别是一个文件导致了这个问题。该文件的格式与其他格式完全相同。
答案 0 :(得分: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)