OPTIONALLY ENCLOSED BY '"' 使 \\n 无效

OPTIONALLY ENCLOSED BY '"' makes \\n become invalid

我尝试使用 Python:

将 csv 文件加载到数据库中
SQLCMD = "LOAD DATA INFILE '/Users/v***/MySQLfiles/salaries.csv' \
INTO TABLE salaries.salaries \
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' \
LINES TERMINATED BY '\n' \
IGNORE 1 ROWS"

当我 运行 它时,我在第 4 行得到错误:

SyntaxError: unexpected character after line continuation character

我知道错误与\n有关,因为它是黑色的(我用的是Jupyter notebook),其他部分都是红色的。

我认为是因为这部分的双引号:

OPTIONALLY ENCLOSED BY '"'

这让 Python 认为整个部分到此结束:

"LOAD DATA INFILE '/Users/v***/MySQLfiles/salaries.csv' \
    INTO TABLE salaries.salaries \
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"

但是OPTIONALLY ENCLOSED BY '"'是必须的,我需要这部分,因为有些列包含逗号。

我该如何解决这个问题?

此问题是由 OPTIONALLY ENCLOSED BY '"' 中的 " 结束 SQLCMD 字符串引起的。您可以通过使用反斜杠转义引号来解决此问题,但使用三重引号引起来的字符串会更容易避免必须完全转义引号:

SQLCMD = """LOAD DATA INFILE '/Users/v***/MySQLfiles/salaries.csv' 
INTO TABLE salaries.salaries 
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 
IGNORE 1 ROWS"""