Suponha que meu arquivo csv contenha
"item_name","price","description"
mobile,500$,It has many features (e.g., camera, big display, etc)
Eu quero carregar este arquivo de dados csv no banco de dados mysql usando o comando mysql como
load data local infile 'file.csv' into table table
fields terminated by ','
lines terminated by '\n'
(column1, column2, column3,...)
Você também pode dizer para usar colocando cada valor "
e usando enclosed by '"'
a opção do mysql. Mas incluir cada valor é uma sobrecarga para mim.
Posso incluir apenas description
valor se houver uma solução para ler esse tipo de csv em que uma coluna é incluída, "
mas não todas.
Altere o delimitador de campo de vírgulas para algo que não esteja presente no arquivo. Se você tiver controle sobre o que cria o arquivo CSV, isso não deve ser muito difícil.
Com
csvkit
, isso pode ser feito se o último campo estiver entre aspas corretamente:Ou, sem
csvformat
, assumindo que as duas primeiras vírgulas em cada linha são verdadeiros delimitadores:Isso não requer que o último campo seja citado.
Redirecione isso para um novo arquivo e, em seguida, use
Eu diria que é um campo complexo e sou pessoalmente a favor de codificá-los, por exemplo, em
base64
,Mas é claro que há prós e contras de fazê-lo.