Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Prepping for a Fabric certification exam? Join us for a live prep session with exam experts to learn how to pass the exam. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

Conjunto de datos de Python "Referencia a objeto no establecida en una instancia de un objeto"

Tengo un conjunto de datos generado a través de un script de Python que me da este error ("La referencia al objeto no está establecida en una instancia de un objeto") cada vez que intento actualizar la información más reciente de su fuente.

No parece haber ningún problema con el establecimiento de la conexión o la edición en el Editor de Power Query. Me he asegurado de que no haya valores nulos en ninguno de los registros y he cambiado la configuración de privacidad, pero hasta ahora no he tenido suerte.

Mi informe tiene un modelo semántico (importación de consulta directa) que se usa para todas las demás tablas y tiene una relación con el conjunto de datos de Python que se importa en el archivo.

¿Cuáles son sus recomendaciones para resolver este problema? No tengo una licencia de Microsoft Fabric y me gustaría evitar tener que actualizar o usar una versión de prueba para utilizar un portátil.

A continuación se muestra un ejemplo del script que estoy ejecutando en mi libro de trabajo.

from simple_salesforce import Salesforce

import pandas as pd

 
    
sf = Salesforce(

    username="xxx",

    password="xxx",

    security_token="xxx",

)



# Query Salesforce

soql = """

    SELECT 
    Name, 
    xxx,
    Task
FROM Project

"""

results = sf.query_all(soql)
 
# Extract records and normalize
records = results["records"]

project_tasks = pd.json_normalize(records)

project_tasks = project_tasks.drop(columns=[col for col in project_tasks.columns if 'attribute' in col.lower()], errors="ignore")

# List the columns not aggregated by the unpivot
id_cols = ['Name', 'xxx']

# Perform the unpivot (melt)
melted_df = pd.melt(
    project_tasks,
    id_vars=id_cols,
    value_vars=[col for col in project_tasks.columns if col not in id_cols],
    var_name='Task',
    value_name='xxx'
)

# Clean up the task names by removing the _Hours suffix and __c
melted_df['Task'] = melted_df['Task'].str.replace('xxx', '')

# Capitalize each word in the task name
melted_df['Task'] = melted_df['Task'].str.title()

# Drop rows where Hours is null
melted_df = melted_df.dropna(subset=['xxx'])

# Fill in melted_df column 'Project Name' blank records with 'No Project Associated'
melted_df['xxx'] = melted_df['xxx'].fillna('No Project Associated')

# Sort by identifier columns and task
melted_df = melted_df.sort_values(by=id_cols + ['Task'])

# melted_df.to_csv('project_tasks.csv', index=False)

# return dataframe
melted_df = melted_df.drop(columns=['xxx'])
print(melted_df)

Por favor, avíseme si necesita más información.

¡Gracias!

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

¿Cómo se obtiene el token y cómo se asegura de que siga siendo válido?

¿Por qué no utilizar el conector de objetos nativo de SalesForce?

El token es válido ya que mi consulta extrae exactamente lo que quiero para este conjunto de datos. En mi opinión, es más fácil manipular el objeto con Python en lugar de usar el conector de Salesforce.

Sin embargo, tengo curiosidad principalmente por saber por qué tendría el mensaje de error: "La referencia a un objeto no está establecida en una instancia de un objeto".

Eso no parece resolver el problema.

Helpful resources

Announcements
May PBI 25 Carousel

Power BI Monthly Update - May 2025

Check out the May 2025 Power BI update to learn about new features.

Notebook Gallery Carousel1

NEW! Community Notebooks Gallery

Explore and share Fabric Notebooks to boost Power BI insights in the new community notebooks gallery.

May 2025 Monthly Update

Fabric Community Update - May 2025

Find out what's new and trending in the Fabric community.

Top Solution Authors
Top Kudoed Authors