GitHub user dosubot[bot] added a comment to the discussion: Deck.gl map change 
style directly on dashboard

<!-- Answer -->
To write a Python function to call the API endpoint 
`/api/v1/dashboard/import/`, you can use the `requests` library to send a POST 
request with the necessary form data. Here's an example function:

```python
import requests
import json
from io import BytesIO

def import_dashboard(api_url, dashboard_export, auth_token, passwords=None, 
overwrite=False, ssh_tunnel_passwords=None, ssh_tunnel_private_keys=None, 
ssh_tunnel_private_key_passwords=None):
    # Prepare the data to be sent in the form of a file
    buf = BytesIO()
    buf.write(json.dumps(dashboard_export).encode())
    buf.seek(0)
    
    # Prepare the form data
    form_data = {
        "formData": (buf, "dashboard_export.zip"),
        "passwords": (None, json.dumps(passwords) if passwords else ""),
        "overwrite": (None, str(overwrite).lower()),
        "ssh_tunnel_passwords": (None, json.dumps(ssh_tunnel_passwords) if 
ssh_tunnel_passwords else ""),
        "ssh_tunnel_private_keys": (None, json.dumps(ssh_tunnel_private_keys) 
if ssh_tunnel_private_keys else ""),
        "ssh_tunnel_private_key_passwords": (None, 
json.dumps(ssh_tunnel_private_key_passwords) if 
ssh_tunnel_private_key_passwords else ""),
    }
    
    # Set the headers, including the authorization token if needed
    headers = {
        "Authorization": f"Bearer {auth_token}",
    }
    
    # Send the POST request
    response = requests.post(f"{api_url}/api/v1/dashboard/import/", 
files=form_data, headers=headers)
    
    # Check the response
    if response.status_code == 200:
        return response.json()
    else:
        return {"error": response.status_code, "message": response.text}

# Example usage
api_url = "http://your-superset-instance.com";
dashboard_export = {"your": "dashboard data"}  # Replace with actual dashboard 
export data
auth_token = "your_auth_token"  # Replace with actual token if needed
result = import_dashboard(api_url, dashboard_export, auth_token)
print(result)
```

This function prepares the dashboard export data, sends it as a multipart 
form-data POST request to the specified API endpoint, and returns the response. 
Adjust the `api_url`, `dashboard_export`, and `auth_token` as needed for your 
specific use case 
<sup>[[1]](https://github.com/apache/superset/blob/master/tests/integration_tests/dashboards/api_tests.py)</sup>.


<!-- Dosu Comment Footer -->
*To continue talking to [Dosu](https://dosu.dev), mention @dosu.*

---
<sup>Help Dosu learn! Give it feedback: [Great 
Response](https://app.dosu.dev/response-feedback/ed8c3b33-c951-4e8b-9950-390c14e09e73?feedback_type=great_response)
 | [Irrelevant 
Answer](https://app.dosu.dev/response-feedback/ed8c3b33-c951-4e8b-9950-390c14e09e73?feedback_type=irrelevant_answer)
 | [Incorrect 
Sources](https://app.dosu.dev/response-feedback/ed8c3b33-c951-4e8b-9950-390c14e09e73?feedback_type=incorrect_sources)
 | [Too 
Verbose](https://app.dosu.dev/response-feedback/ed8c3b33-c951-4e8b-9950-390c14e09e73?feedback_type=too_verbose)
 | 
[Hallucination](https://app.dosu.dev/response-feedback/ed8c3b33-c951-4e8b-9950-390c14e09e73?feedback_type=hallucination)
 | [Bug 
Report](https://app.dosu.dev/response-feedback/ed8c3b33-c951-4e8b-9950-390c14e09e73?feedback_type=bug_report)
 | 
[Other](https://app.dosu.dev/response-feedback/ed8c3b33-c951-4e8b-9950-390c14e09e73?feedback_type=other)</sup>


GitHub link: 
https://github.com/apache/superset/discussions/32149#discussioncomment-12789020

----
This is an automatically sent email for notifications@superset.apache.org.
To unsubscribe, please send an email to: 
notifications-unsubscr...@superset.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscr...@superset.apache.org
For additional commands, e-mail: notifications-h...@superset.apache.org

Reply via email to