Olá,
Tenho um script Python que retorna uma lista de strings. Qual opção devo escolher para converter o objeto Python para um tipo .NET? E, em geral, existe alguma regra prática para saber qual tipo escolher para cada tipo Python?
Obrigado!
Olá,
Tenho um script Python que retorna uma lista de strings. Qual opção devo escolher para converter o objeto Python para um tipo .NET? E, em geral, existe alguma regra prática para saber qual tipo escolher para cada tipo Python?
Obrigado!
Olá @ivory_le
Primeiro, use a atividade Invoke Python method para executar código Python. O resultado do método invocado é armazenado em uma variável PythonObject. Ele pode ser processado posteriormente usando a atividade Get Python Object e convertido em um tipo de dado .NET.
Olá, usei Get Python Object, mas estou encontrando este erro
in Test.xaml
at InvokeMethod “Invoke Python Method”
at Sequence “Do”
at PythonScope “Python Scope”
at Sequence “Test”
at Test “Test”
System.AggregateException: Uma ou mais exceções ocorreram. (Erro ao invocar o método Python) —> System.InvalidOperationException: Erro ao invocar o método Python —> System.NullReferenceException: A referência de objeto não foi definida para uma instância de um objeto. at UiPath.Python.Impl.OutOfProcessEngine.<>c__DisplayClass15_0.b__0()
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
— End of stack trace from previous location —
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
— End of stack trace from previous location —
at UiPath.Python.Activities.InvokeMethod.ExecuteAsync(AsyncCodeActivityContext context, CancellationToken cancellationToken)
— End of inner exception stack trace —
at UiPath.Python.Activities.InvokeMethod.ExecuteAsync(AsyncCodeActivityContext context, CancellationToken cancellationToken)
— End of inner exception stack trace —
at UiPath.Shared.Activities.AsyncTaskCodeActivity.EndExecute(AsyncCodeActivityContext context, IAsyncResult result)
at System.Activities.AsyncCodeActivity.CompleteAsyncCodeActivityData.CompleteAsyncCodeActivityWorkItem.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)
meu script retorna uma string e quero convertê-la para o tipo string
pergunta adicional: se eu tiver uma lista de strings retornada, para qual tipo .NET devo convertê-la?
Olá, @ivory_le
Consulte a postagem abaixo e veja se as sugestões mencionadas ajudam. Você também poderia compartilhar uma captura de tela do seu fluxo de trabalho? Quais atividades você está usando?
Em qual atividade você está recebendo o erro? É no Python Scope? Então confira se o caminho do Python foi configurado corretamente.
Esta parte sugere que o problema está na chamada do método Python. Parece que a variável que você está usando é nula.
Você poderia executar esse fluxo de trabalho no modo de depuração e verificar em qual atividade ele falha e, no painel local, confirmar se as variáveis receberam valores?
Estou recebendo este erro:
error CS0246: Não foi possível encontrar o nome do tipo ou namespace ‘GlobalVariablesNamespace’ (está faltando uma diretiva using ou uma referência de assembly?)
error CS0246: Não foi possível encontrar o nome do tipo ou namespace ‘GlobalConstantsNamespace’ (está faltando uma diretiva using ou uma referência de assembly?)
Você pode compartilhar seu script Python?
import pandas as pd
def get_bot():
bot_file_path = r".some_file_path"
# Carrega o arquivo Excel em um DataFrame
df_bot_table = pd.read_excel(bot_file_path)
# Define as condições para filtragem
conditions = (
(df_bot_table["a"] == True) &
(df_bot_table["b"] == 1)
)
filtered_df = df_bot_table[conditions]
return filtered_df["Prod"].tolist()[0]
desculpe, preciso alterar alguns nomes, mas esse script interage com outro arquivo xlsx e retorna uma string
Oi, este é o meu problema. Agora aparece uma mensagem dizendo que não consigo converter para uma string.
em Test.xaml
at GetObject`1 “Get Python Object”
at Sequence “Do”
at PythonScope “Python Scope”
at Sequence “Test”
at Test “Test”
System.InvalidOperationException: Erro ao converter objeto Python —> System.InvalidOperationException: Exceção de instanciação do Python
Exceção do programa Python Invoker:
O valor ‘module’ não pode ser convertido para System.String
at UiPath.Shared.Service.PythonResponse.ThrowExceptionIfNeeded()
at UiPath.Python.Service.PythonProxy.Convert(Guid obj, String t)
at UiPath.Python.Impl.OutOfProcessEngine.Convert(PythonObject obj, Type t)
at UiPath.Python.Activities.GetObject1.Execute(CodeActivityContext context) --- Fim do rastreamento de pilha da exceção interna --- at UiPath.Python.Activities.GetObject1.Execute(CodeActivityContext context)
at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager)
at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)
Você está retornando uma lista de strings, certo? Se sim, em Get Python Object, defina o argumento de tipo como array de strings.
No momento, estou apenas retornando uma string. Ele disse que o Python não consegue encontrar minha função no script. Estou usando nosso exemplo de como invocar um método Python com a função add, e ele diz que não consegue encontrar o atributo “add” no meu módulo. Você sabe qual pode ser o motivo?