Power query ошибка binary

 

Максим

Пользователь

Сообщений: 9
Регистрация: 28.07.2021

#1

05.08.2021 17:23:30

Господа, добрый день.

Намедни решил своять код для подключения к API.
Но редактор, ирод эдакий, выдал мне ошибку до сели не известную.
Что порекомендуете предпринять в сложившейся ситуации, для устранения злосчастной ошибки?

Код выглядит следующим образом:

Код
let

    url = "https://api-...",
    head = Json.FromValue([#"Client-Id"=123, #"Api-Key"="xxx-xxx-xxx", #"Content-Type"="application/json"]),
    body = Json.FromValue([#"limit" = 100, #"offset"= 1]),
    Options = [Headers = Json.FromValue(head), Query  = Json.FromValue(body)],

    Source = Json.Document(Web.Contents(url,Options))

in

Source

Изменено: Filo07.08.2021 22:13:42

 

PooHkrd

Пользователь

Сообщений: 6602
Регистрация: 22.02.2017

Excel x64 О365 / 2016 / Online / Power BI

Стесняюсь спросить, а с какой целью вы два раза применяете Json.FromValue к заголовку и телу завпроса?

Вот горшок пустой, он предмет простой…

 

Максим

Пользователь

Сообщений: 9
Регистрация: 28.07.2021

#3

05.08.2021 18:33:42

Не стоит стеснятся, верно подмечено! Как говорится — «заставь дурака молится, так он и лоб расшибет». Это я явно перестарался.

НО!
Все равно ошибка таже и ничего не меняется, после того как убрал из кода лишние Json.FromValue. Причем в двух вариантах.

Код
let

    url = "https://api-seller.ozon.ru/v1/analytics/item_turnover",
    head = Json.FromValue([#"Client-Id"=138564, #"Api-Key"="76984602-3e9d-41b4-b51a-ab357bec4d03", #"Content-Type"="application/json"]),
    body = Json.FromValue([#"limit" = 100, #"offset"= 1]),
    Options = [Headers = head, Query  = body],

    Source = Json.Document(Web.Contents(url,Options))

in

Source

Код
let

    url = "https://api-seller.ozon.ru/v1/analytics/item_turnover",
    head = [#"Client-Id"=138564, #"Api-Key"="76984602-3e9d-41b4-b51a-ab357bec4d03", #"Content-Type"="application/json"],
    body = [#"limit" = 100, #"offset"= 1],
    Options = [Headers = Json.FromValue(head), Query  = Json.FromValue(body)],

    Source = Json.Document(Web.Contents(url,Options))

in

Source

Я человек не самый подкованный в программировании, да чего уж лукавить, профан второсортный )
Помогите, если не в тягость ;)

Изменено: Максим05.08.2021 22:06:52

 

Дмитрий(The_Prist) Щербаков

Пользователь

Сообщений: 14264
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

#4

05.08.2021 19:01:10

а теперь еще так попробуйте:

Код
body = Json.FromValue([#"limit" = 100, #"offset"= 1]),
Json.Document(Web.Contents(url,[Content=body,Headers=[#"Client-Id"=135864, #"Api-Key"="76984302-3e9d-41b4-b51a-ab357bec4b03", #"Content-Type"="application/json"]]))

P.S. Раз мы все тут немного подзабыли про название темы, то предложу согласно правил: Ошибка Power Query: Не удается преобразовать значение типа Binary в тип Record

Изменено: Дмитрий(The_Prist) Щербаков05.08.2021 20:20:19

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Максим

Пользователь

Сообщений: 9
Регистрация: 28.07.2021

Верно подмечено комрад! Вопрос остается подвешенным. Что же все-таки означает сие сообщение об ошибке?

Изменено: vikttur07.08.2021 11:17:58

 

Дмитрий(The_Prist) Щербаков

Пользователь

Сообщений: 14264
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

#6

06.08.2021 09:24:09

Цитата
Максим написал:
Что же все-таки означает сие сообщение об ошибке?

Означает, что Вы передаете в функцию параметр не того типа, который эта функция ожидает. Вы в Headers передаете значение Json.FromValue, которое возвращает тип Bynary. А Headers ожидает тип Record. Вы мой код попробовали?  

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Filo

Пользователь

Сообщений: 9
Регистрация: 28.07.2021

#7

06.08.2021 18:52:11

Цитата
Дмитрий(The_Prist) Щербаков написал: Вы мой код попробовали?

Код применил. Ошибка:

Закавычил значение 138564, получил:

Переменную url убрал и ввел адрес непосредственно в значение Web.Contents и получил следующее:

Запрос должен быть GET, если я правильно понял то, параметр «Content =» в Web.Contents меняет запрос GET на POST согласно документации Power Query M:

Изменено: Filo07.08.2021 22:16:46

 

Filo

Пользователь

Сообщений: 9
Регистрация: 28.07.2021

Вопрос решил. Всем спасибо за участие!

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Тема может быть полезна не только Вам. Рассказать о решении не хотите?

 

Filo

Пользователь

Сообщений: 9
Регистрация: 28.07.2021

#10

07.08.2021 18:32:50

Цитата
vikttur написал:
Тема может быть полезна не только Вам. Рассказать о решении не хотите?

Web.Contents() — выдает бинарный код поэтом дополнительно его бинарить не надо. (Во многих примерах на просторах интернета используется подключения используется Text.ToBinary)

Headers — это HTTP запрос поэтому, должно уйти как есть, а на в виде JOSN

Описание Web.Contents — Синтаксис

Дмитрий(The_Prist) Щербаков — дал код который по сути верно собран за исключением пары изменений в Contents — не стоило заключать значения в #» «.

Так работает:

Код
Content = Json.FromValue([limit = 100,offset= 0])

Сама по себе ошибка, которую показал Power Query говорит о том, что в коде значение (Value) бинарное (=Binary) и он не может превратить его в тип Record который предусмотрен.

Изменено: Filo07.08.2021 22:12:06

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Filo, еще одно замечание: через время картинки будут недоступны… Можно же прописать строки текстом

 

PooHkrd

Пользователь

Сообщений: 6602
Регистрация: 22.02.2017

Excel x64 О365 / 2016 / Online / Power BI

#12

07.08.2021 18:59:13

Цитата
vikttur написал:
еще одно замечание: через время картинки будут недоступны

А некоторым через фаервол недоступны уже сейчас. Можно же картинки к сообщению прикреплять.

Вот горшок пустой, он предмет простой…

 

Filo

Пользователь

Сообщений: 9
Регистрация: 28.07.2021

Прикрепил ссылку, там все подробно!
Вот вам бонус, много чего про подключения и JSON понятно стало:

 

a.petrov

Пользователь

Сообщений: 1
Регистрация: 14.03.2020

#14

29.12.2021 16:14:10

Все таки, возможно ли полный код запроса привести? Сколько не пробовал проследить мысль и прийти от начального кода к рабочему, так ничего не получилось.
Заранее спасибо!

  • Remove From My Forums
  • Question

  • Hi I have receive a the error «DataFormat.Error — Details: Binary», when I tried to refresh the file with the sources. I already tried to:

    — open the file in Excel directly to test if excel shows restricted Access message,.

    Save As command to confirm whether «Save as type» is the Excel workbook format: (*.xlsx)

    Nothing works. Do you have any idea what it could be?

    Thanks in advance!

    Regards. Alberto.

Answers

  • Can you provide the following details about the origin of the Excel file:

    • How was it created?
      • Excel version?
      • Web service?
    • Is the file password protected?
    • Does the file contain anything other than data, e.g.:
      • Does the file contain any VBA or macros?
      • Does the file contain any connections?
      • Does the file contain any charts, pivot tables or PowerView sheets?
      • Does the file contain a data model?
    • Can you create a similar file with fake data in it that exhibits the problem?

    Thanks, Hadeel

    • Edited by

      Thursday, April 30, 2015 8:31 PM

    • Proposed as answer by
      Ed Price — MSFTMicrosoft employee
      Wednesday, May 6, 2015 6:28 AM
    • Marked as answer by
      Ed Price — MSFTMicrosoft employee
      Saturday, June 6, 2015 3:12 AM

For anyone who is still having this issue, I found the reason for the error to be the «Privacy level» setting in Power BI service. You need to make sure that all your connections where you are appending or merging data have the same privacy level. 

This also explain why it would work in Power BI Desktop and not in Power BI Service as they can have different settings.

 Settings.png

Every time I have this error, I check the privacy level of all the credentails and I find that in one of the setting have either changed or not set to begin with

Hope this helps others
Nishant

  • Remove From My Forums
  • Question

  • I am linking to a folder that contains .xlsx spreadsheets in Power Query, which does open the data, but when I try to expand the binary field I get the following error:

    DataFormat.Error: The input couldn’t be recognized as a valid Excel document.
    Details:
        Binary

    Can you advise?

    Thanks

    • Moved by

      Thursday, February 18, 2016 3:47 PM
      Does not appear SSIS related

Answers

    • Edited by
      Raoul Larsen
      Tuesday, March 8, 2016 9:26 AM
    • Proposed as answer by
      Ed Price — MSFTMicrosoft employee
      Friday, July 29, 2016 9:11 PM
    • Marked as answer by
      Michael Amadi
      Wednesday, August 31, 2016 6:36 AM

Файлы к уроку:

  • Для спонсоров Boosty
  • Для спонсоров VK

Ссылки:

  • Страница курса
  • Плейлист YouTube
  • Плейлист ВК

Описание

Мы собираемся импортировать таблицу с этой страницы. Когда мы пытаемся изменить тип данных для столбцов с датой, то возвращается столбец с ошибкой DateFormat.Error.

Решение

Если не получается преобразовать столбец с текстом в дату, то значит в строке присутствуют лишние символы.

С помощь функции Text.Length мы можем убедиться, что длина строки намного больше, чем ожидается. Мы видим 10 символов, но функция возвращает 15.

С помощью функции Text.Start извлечем 1 символ сначала строки. Потом получим код этого символа с помощью функции Character.ToNumber. Получаем 8206.

Далее воспользуемся функционалом замены подстроки и исправляем получившуюся формулу:

Table.ReplaceValue(
      get_table, 
      Character.FromNumber(8206), 
      "", 
      Replacer.ReplaceText, 
      {
         "Дата начала купонного периода", 
         "Дата выплаты купона", 
         "Дата фиксации списка держателей"
      }
   )

Примененные функции

  • Text.Length
  • Text.Start
  • Character.ToNumber
  • Web.Page
  • Web.Contents
  • Table.SelectRows
  • Table.ReplaceValue
  • Character.FromNumber
  • Replacer.ReplaceText
  • Table.TransformColumnTypes

Код

let
   source = Web.Page(
      Web.Contents(
         "https://www.moex.com/ru/issue.aspx?board=TQCB&code=RU000A102036#/bond_4"
      )
   ), 
   get_table = Table.SelectRows(
      source, 
      each ([ClassName] = "coupon-payment-schedule__table")
   ){0}[Data], 
   cols_replace = Table.ReplaceValue(
      get_table, 
      Character.FromNumber(8206), 
      "", 
      Replacer.ReplaceText, 
      {
         "Дата начала купонного периода", 
         "Дата выплаты купона", 
         "Дата фиксации списка держателей"
      }
   ), 
   cols_types = Table.TransformColumnTypes(
      cols_replace, 
      {
         {"Дата начала купонного периода", type date}, 
         {"Дата выплаты купона", type date}, 
         {"Дата фиксации списка держателей", type date}
      }
   )
in
   cols_types

Этот урок входит в курс Работа с ошибками в Power Query

Номер урока Урок Описание
1 Power Query Ошибки №1. Измененный тип, Неверная фильтрация в UI Почему возникает ошибка Expression.Error Столбец таблицы не найден? Одна из причин — шаг Измененный тип.
Почему в вашей итоговой таблицы не все данные, которые должны там оказаться? Вероятно вы совершили ошибку неверной фильтрации в пользовательском интерфейсе.
2 Power Query Ошибки №2. Фиксированная ширина столбца Excel В этом уроке вы узнаете как отключить автоматическое определение ширины столбцов таблицы Excel при обновлении запроса Power Query.
3 Power Query Ошибки №3. Formula Firewall, запрос ссылается на… Вы работаете в Power Query, но при попытке обновить все возникает ошибка Formula Firewall, запрос ссылается на… Что делать? Как исправить?
4 Power Query Ошибки №4. Доступ к веб-содержимому В этом уроке вы узнаете как избавиться от надоедливого окна доступ к веб-содержимому.
5 Power Query Ошибки №5. Количество столбцов CSV При импорте CSV получается неверное количество столбцов.
6 Power Query Ошибки №6. Не получается изменить тип данных (DataFormat.Error) При попытке изменить тип данных с текстового на дату возникает ошибка DataFormat.Error.
7 Power Query Ошибки №7. Разные имена листов В этом уроке мы решим проблему, когда в ваших источниках нужные вам данные находятся всегда на листах с разными именами.
8 Power Query Ошибки №8. Разные имена листов 2 В этом уроке мы другими способами решим проблему, когда в ваших источниках нужные вам данные находятся всегда на листах с разными именами.
9 Power Query Ошибки №9. Разные имена столбцов, Table.TransformColumnNames В этом уроке мы разберем проблему, когда нам присылают файлы, в которых всегда столбцы названы по-разному.
10 Power Query Ошибки №10. Как развернуть все столбцы В этой задаче мы научимся разворачивать все столбцы табличного столбца не перечисляя каждый из них хардкодом.
11 Power Query Ошибки №11. Подключиться к последнему файлу В этом уроке мы научимся подключаться к самому свежему файлу из нужной нам папки с нужным названием.
12 Power Query Ошибки №12. Консолидация и MissingField.Type Бывает вы ходите выполнить добавление таблиц друг под другом с предварительной обработкой, но получаете ошибку Expression.Error: Столбец таблицы не найден.
13 Power Query Ошибки №13. Удалить пустые столбцы Как без хардкода автоматически удалить пустые столбцы в Power Query, которые есть в импортируемой таблицы. Разберем 2 способа. Один из них прост до безобразия, а для второго понадобится функция Table.Profile.
14 Power Query Ошибки №14. Удалить лишние пробелы В этом уроке мы разберем еще 1 способ удалить лишние пробелы в текстовом столбце Power Query. Для этого мы повторим и изучим несколько новых функций.
Text.SplitAny
List.Select
Character.FromNumber
Text.Combine
15 Power Query Ошибки №15. Плохо структурированный TXT Как быть, если текстовый файл разбивается на столбцы неправильно?
16 Power Query Ошибки №16. При округлении не совпадает общая сумма Разберем ошибку, которая возникает при необходимости разбить число на определенные доли, а результаты округлить до двух знаков после запятой. В такой ситуации может получиться, что сумма слагаемых не будет равняться исходному числу.
17 Power Query Ошибки №17. Удаление дубликатов, Подводные камни Table. Distinct Что может пойти не так при использовании функции удаления дубликатов.
18 Power Query Ошибки №18. Удаление дубликатов 2, Подводные камни Table. Distinct Что может пойти не так при использовании функции удаления дубликатов. Другое решение данной проблемы.
19 Power Query Ошибки №19. Неверная разбивка на столбцы При импорте данных из CSV или TXT разбивка на столбцы происходит неправильно.
20 Power Query Ошибки №20. Пустая таблица при импорте Excel (XLSX, XLS) Вы пытаетесь подключиться к книге Excel, но импортируется пустая таблица.
21 Power Query Ошибки №21. Подключение к PostgreSQL, Установка драйвера Вы пытаетесь подключиться к PostgreSQL и получаете ошибку «Перед использование этого соединителя необходимо установить один или несколько дополнительных компонентов»

Понравилась статья? Поделить с друзьями:
  • Power max 125 ошибка 0 22
  • Power loss ошибка рено премиум dci 420
  • Power fail ошибка
  • Power bi ошибка 1073741511
  • Power and revolution geopolitical simulator 4 ошибка