Измените разделитель данных столбца на выходе mysqldump - PullRequest
1 голос
/ 15 сентября 2011

Я хочу изменить форматирование вывода, созданного командой mysqldump, следующим образом:

(data_val1,data_val2,data_val3,...)

до

(data_val1|data_val2|data_val3|...)

Изменение здесь, являющееся другим разделителем. Это позволило бы мне (в python) анализировать строки данных с помощью команды line.split ("|") и в итоге получить значения, разделенные правильно (в отличие от выполнения line.split (","), и иметь значения, которые содержит запятые (можно разделить на несколько значений).

Я пытался использовать флаг --fields-terminated-by, но для этого также необходимо использовать флаг --tab. Я не хочу использовать флаг --tab, поскольку он разбивает дамп на несколько файлов. Кто-нибудь знает, как изменить разделитель, который использует mysqldump?

1 Ответ

0 голосов
/ 15 сентября 2011

Это не очень хорошая идея. Вместо использования string.split() в Python, используйте модуль csv для правильного анализа данных CSV, которые могут быть заключены в кавычки и могут иметь внутренние ,, которые не являются разделителями.

import csv

Файлы дампа MySQL предназначены для использования в качестве входных данных в MySQL. Если вы действительно хотите вывод с разделителями канала, используйте синтаксис SELECT INTO OUTFILE вместо опции FIELDS TERMINATED BY '|'.

...