Forum Discussion

AkhilGrandhi1's avatar
1 year ago
Solved

How to Connect to Power BI Service Datasets and Pull Data Using Python Locally (Outside Fabric)

I am trying to connect to a Power BI Service dataset from my local Python environment, without using Fabric Notebooks or Fabric Workspaces. My goal is to query and pull data from a published Power BI...
  • kushanNa's avatar
    kushanNa
    1 year ago

    Hi AkhilGrandhi1 

     

    I did a test on this and it's working , & this is a general pro workspace , not a permium one 

     

    following is the test python code 

     

    import adodbapi
    
    # Connection string (edit table and workspace as needed)
    conn = adodbapi.connect("Provider=MSOLAP.8; \
        Data Source='powerbi://api.powerbi.com/v1.0/myorg/Testws'; \
        Initial Catalog='db1'")
    
    # Create cursor
    cursor = conn.cursor()
    
    # Replace 'YourTableName' with a real table name in your data model
    dax_query = "EVALUATE 'table'"
    
    print("Querying table: table")
    cursor.execute(dax_query)
    
    # Fetch column names
    columns = [column[0] for column in cursor.description]
    print("Columns:", columns)
    
    # Fetch all rows
    rows = cursor.fetchall()
    for row in rows:
        print(row)
    
    # Close the connection
    cursor.close()
    conn.close()

     

     

  • AkhilGrandhi1's avatar
    AkhilGrandhi1
    1 year ago

    Hi kushanNa 

    Thanks for this approach — it's working fine. A couple of key points to keep in mind:

    Use a lower version of Python (e.g., 3.7), as the latest versions are not supported.

    Avoid spaces in the workspace name, as this is causing issues.

    Currently, it uses SSO authentication, but I’m looking to use an Azure Service Principal (SPN) instead, as I’m building an application. If you know of any method to bypass SSO authentication or enable SPN-based auth, please share it.

    Thanks!
    Akhil Grandhi