Удалить двойные кавычки из данных - PullRequest
0 голосов
/ 16 октября 2018

Я получаю данные в CSV-файле с двойными кавычками вокруг строковых столбцов, но при чтении CSV-файла с использованием U-SQL я получаю ошибки из-за двойных кавычек в данных.

Я думаю о замене двойныхкавычки, которые находятся в данных на первом этапе, затем прочитайте этот файл, но не знаете, как это сделать, поскольку у нас везде двойные кавычки.

Буду признателен за любые предложения, или если кто-то может помочь мне дать код powershell или .netсделать то же самое, что было бы большим подспорьем, так как я не очень хорош в .net или powershell.

Образцы данных

«Имя»; »Кафедра», «Азбука»; «Образование» Преподавание«Cde»; «Тест» Другой »

Это должно быть

« Имя »;» Кафедра »« Abc »;« EducationTeaching »« Cde »;« TestAnother »

Ответы [ 3 ]

0 голосов
/ 16 октября 2018

Так что, похоже, ваши цитаты не являются стандартными [Char]34.Вместо этого они [Char]8220; [Char]8221

Так что нам нужно сделать замену в powershell

$TEST = @"
“Name”;”Department” “Abc”;”Education”Teaching” “Cde”;”Test”Another”
"@

$TEST | %{ 
    $_ = $_ -replace [char]8220, '"'
    $_ = $_ -replace [char]8221, '"'
    $_ -replace '"([a-zA-Z]+)"([a-zA-Z]+)"','"$2 $1"'
}

, это даст вывод:

"Name";"Department" "Abc";"Teaching Education" "Cde";"Another Test"
0 голосов
/ 25 октября 2018

Вы также можете сделать это в пользовательском процессоре строк .Пусть исходные данные прочитают файл CSV в переменную в виде одной строки столбца (необработанные данные).Затем пропустите каждую строку через процессор строк, чтобы проанализировать данные и удалить ошибочные символы.Я сделал нечто подобное для обработки текстовых файлов с фиксированной шириной.

0 голосов
/ 16 октября 2018

Вы можете использовать регулярное выражение найти / заменить в коде Visual Studio.Например (и при условии, что данные содержат только буквы, вы можете отредактировать регулярное выражение при необходимости):

Find regex: "([a-zA-Z]+)"([a-zA-Z]+)"
Replace string: "$1$2"
Input string: "Name";"Department" "Abc";"Education"Teaching" "Cde";"Test"Another"
Output string: "Name";"Department" "Abc";"EducationTeaching" "Cde";"TestAnother"
...