Кодирование / импорт Adwords .CSV в powerquery

#unicode #encoding #google-ads-api #powerquery #m

#юникод #кодирование #google-ads-api #powerquery #m

Вопрос:

Основы: вопроса: как кодируются отчеты .cvs из Google Adwords?

Подробности: я пытаюсь импортировать файл .csv из adwords с помощью powerquery и, хоть убейте, не могу добиться, чтобы при импорте появлялись символы «,» (запятая).

Мой код:

 let
// Get raw file data as txt file,
fnRawFileContents = (fullpath) as table =>
let
    EveryLine = Lines.FromBinary(File.Contents(fullpath),1,true,1200),
    Value = Table.FromList((EveryLine),Splitter.SplitByNothing())
in
    Value,

// Use functions to load contents
   Source =  fnRawFileContents("C:UsersJamie.MarshallDesktopEmmaadwordsDoc.csv"),
    #"Removed Top Rows" = Table.Skip(Source,1)
in
    #"Removed Top Rows"
  

Факты:

  1. В документации Adwords говорится, что они используют UTC-16LE
  2. UTC-16LE в M — это кодовая страница 1200
  3. Я не могу открыть Adwords .csv в блокноте при любых настройках кодировки (Unicode, Unicode Big Endian, UTF-8, ASNI)
  4. Если повторно сохранить файл в Excel как UnicodeText, я могу открыть его с помощью notepad в формате Unicode Big Endian с разрывами строк, но без запятых («,»).

  • Как я могу проверить кодировку в этих документах?
  • Какая другая кодировка это может быть?
  • Мы будем признательны за любую помощь по этому вопросу.

Ответ №1:

Почему вы используете lines вместо встроенного csv-парсера?

Используйте Csv.Document(file_content, [Delimiter="#(tab)", Columns=10, Encoding=1200, QuoteStyle=QuoteStyle.None])

Вот так

 let
    file_path = "C:UsersJamie.MarshallDesktopEmmaadwordsDoc.csv",
    file_content = File.Contents(file_path),
    csv = Csv.Document(file_content, [Delimiter="#(tab)", Columns=10, Encoding=1200, QuoteStyle=QuoteStyle.None]),
    skip_1_row = Table.Skip(csv,1),
    promote_header = Table.PromoteHeaders(skip_1_row),
    remove_last_2_rows = Table.RemoveLastN(promote_header,2)
in
    remove_last_2_rows