Forum Discussion
Error when trying to connect the Data Set using Python Script in Power BI
Hi
When i am trying to use python script to connect the Data set in Power BI. i am getting the below error. Python script was for getting data from Kaggle using Kaggle API.
Details: "An error happened while reading data from the provider: 'Object reference not set to an instance of an object.'"
When I retry then the below error is coming.
Details: "ADO.NET: Unable to find the requested .Net Framework Data Provider. It may not be installed."
can anyone advise what will be the issue.
Regards,
Samith
Hi All,
i have found the solution for error. i was trying many things. Atlast I went to the C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config and edited the machine.config.
in that file MySql.Data.MySqlClient was there 2 times. I have removed the duplicate and now I am able to run the python script.
Thank you all for the response.Reagrds,
Samith
7 Replies
- samithcFrequent Visitor
Hi All,
i have found the solution for error. i was trying many things. Atlast I went to the C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config and edited the machine.config.
in that file MySql.Data.MySqlClient was there 2 times. I have removed the duplicate and now I am able to run the python script.
Thank you all for the response.Reagrds,
Samith
- Greg_Deckler
Community Champion
samithc "connect the data set in Power BI" Can you elaborate on that. A data set in the Service? A local data set when you have Power BI open? A data set within Power BI Desktop as in a Python visual?
- samithcFrequent Visitor
Hi Greg_Deckler ,
Using the below Python code. I was trying to get the date to Power BI.
''' python
import kaggleimport osimport pandas as pd# Set Kaggle API credentials directoryos.environ['KAGGLE_CONFIG_DIR'] = 'C:/Users/samit/.kaggle'# Specify the dataset identifierdataset = 'piterfm/paris-2024-olympic-summer-games'# Set the download pathdownload_path = r'D:\SAMITH\Power BI\Paris 2024 Olympics Dashboard\Source'# Remove existing files in the folder to prevent duplicates or outdated filesfor file in os.listdir(download_path):file_path = os.path.join(download_path, file)try:if os.path.isfile(file_path):os.unlink(file_path) # Delete the fileprint(f"Deleted {file_path}")except Exception as e:print(f"Error deleting {file_path}: {e}")# Download the dataset using the Kaggle API and unzip the fileskaggle.api.dataset_download_files(dataset, path=download_path, unzip=True)# List of CSV files to be importedcsv_files = ['athletes.csv','events.csv','medallists.csv','medals.csv','medals_total.csv','schedules.csv','schedules_preliminary.csv','teams.csv','torch_route.csv','venues.csv']# Initialize a dictionary to hold DataFramesdataframes = {}# Iterate through each CSV file and load it into a DataFramefor file in csv_files:# Construct the full path to the CSV filefile_path = os.path.join(download_path, file)# Load the CSV file into a Pandas DataFramedf = pd.read_csv(file_path)# Add the DataFrame to the dictionary using the file name as the keytable_name = file.split('.')[0] # Remove the .csv extensiondataframes[table_name] = df'''
I am getting the below errors : Each time I retry then error getting changed to each other. I have tried installing .net framework 8. Also tried the My SQL connecter and re-installed power bi from website.
1) Details: "An error occurred creating the configuration section handler for system.data: Column 'InvariantName' is constrained to be unique. Value 'MySql.Data.MySqlClient' is already present. (C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config line 155). This is a configuration issue with the file 'C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config'."
2) Details: "ADO.NET: Unable to find the requested .Net Framework Data Provider. It may not be installed."
- Greg_Deckler
Community Champion
samithc Your script worked perfectly for me. See attached PBIX below signature. But, I started with a simple enter data query whereas it seems like maybe you started with a MySQL query?
- Walter726HerrinNew Member
Hi Samith,
The errors in Power BI might be due to uninitialized objects or missing .NET Framework components. Ensure all objects in your Python script are properly initialized and check for null values. Also, verify that the necessary .NET Framework Data Provider is installed. Updating Power BI and checking dependencies for your Python script and Kaggle API might help. If the issue persists, consider reinstalling the .NET Framework or checking Power BI community forums.
- samithcFrequent Visitor
Hi Walter726Herrin ,
Below python script i have tried in VS CODE and it is working in VS CODE.
import kaggleimport osimport pandas as pd# Set Kaggle API credentials directoryos.environ['KAGGLE_CONFIG_DIR'] = 'C:/Users/samit/.kaggle'# Specify the dataset identifierdataset = 'piterfm/paris-2024-olympic-summer-games'# Set the download pathdownload_path = r'D:\SAMITH\Power BI\Paris 2024 Olympics Dashboard\Source'# Remove existing files in the folder to prevent duplicates or outdated filesfor file in os.listdir(download_path):file_path = os.path.join(download_path, file)try:if os.path.isfile(file_path):os.unlink(file_path) # Delete the fileprint(f"Deleted {file_path}")except Exception as e:print(f"Error deleting {file_path}: {e}")# Download the dataset using the Kaggle API and unzip the fileskaggle.api.dataset_download_files(dataset, path=download_path, unzip=True)# List of CSV files to be importedcsv_files = ['athletes.csv','events.csv','medallists.csv','medals.csv','medals_total.csv','schedules.csv','schedules_preliminary.csv','teams.csv','torch_route.csv','venues.csv']# Initialize a dictionary to hold DataFramesdataframes = {}# Iterate through each CSV file and load it into a DataFramefor file in csv_files:# Construct the full path to the CSV filefile_path = os.path.join(download_path, file)# Load the CSV file into a Pandas DataFramedf = pd.read_csv(file_path)# Add the DataFrame to the dictionary using the file name as the keytable_name = file.split('.')[0] # Remove the .csv extensiondataframes[table_name] = dfAlso have tried installing .netframework 8. Not sure how to install .NET Framework Data Provider.Regards,Samith