Я получаю сообщение об ошибке в веб-активности ADF:
Содержимое запроса недействительно и не может быть десериализовано: 'После при анализе значения был обнаружен неожиданный символ:
Продолжая изучать эту ошибку, я обнаружил, что из блокнота появляется ошибка:
---------------------------------------------------------------------------\nValueError Traceback (most recent call last)\n/tmp/ipykernel_10465/628309876.py in <module>\n 7 \n 8 \n----> 9 split_df.columns = ['dot1', 'dot2', 'dot3', 'dot4', 'dot5']\n 10 print(split_df)\n\n~/cluster-env/env/lib/python3.8/site-packages/pandas/core/generic.py in __setattr__(self, name, value)\n 5476 try:\n 5477 object.__getattribute__(self, name)\n-> 5478 return object.__setattr__(self, name, value)\n 5479 except AttributeError:\n 5480 pass\n\npandas/_libs/properties.pyx in pandas._libs.properties.AxisProperty.__set__()\n\n~/cluster-env/env/lib/python3.8/site-packages/pandas/core/generic.py in _set_axis(self, axis, labels)\n 668 def _set_axis(self, axis: int, labels: Index) -> None:\n 669 labels = ensure_index(labels)\n--> 670 self._mgr.set_axis(axis, labels)\n 671 self._clear_item_cache()\n 672 \n\n~/cluster-env/env/lib/python3.8/site-packages/pandas/core/internals/managers.py in set_axis(self, axis, new_labels)\n 218 \n 219 if new_len != old_len:\n--> 220 raise ValueError(\n 221 f\"Length mismatch: Expected axis has {old_len} elements, new \"\n 222 f\"values have {new_len} elements\"\n\nValueError: Length mismatch: Expected axis has 9 elements, new values have 5 elements"
и когда я отправляю эту ошибку в веб-активность для отправки электронной почты, я получаю вышеуказанную ошибку веб-активности.
Решение попробовал:
Итак, чтобы преодолеть эту ошибку, я создал переменную «ErrorMessage», используя выражение, которое сначала будет содержать сообщение об ошибке:
@activity('Notebook1').error.Message
а затем еще одна переменная переменная('CleanErrorMessage'), которая будет содержать чистое сообщение, замените \n на '', используя
@replace(variables('ErrorMessage'),'\n','')
но он не работает так, как ожидалось
Можете ли вы помочь мне решить эту проблему и удалить эти специальные символы и разрыв строки из сообщения об ошибке записной книжки, чтобы я мог передать ошибку веб-активности в формате JSON и получить результат.
Веб-активность Json:
{
"Pipeline":"@{pipeline().Pipeline}",
"ErrorMessage": "@{variables('CleanErrorMessage')}",
"DataFactoryName":"@{pipeline().DataFactory}",
"Runid":"@{pipeline().RunId}"
}
Вы можете сделать следующие вещи, чтобы это заработало.
@string(replace(activity('Notebook1').error.Message, '"',''''))