J'ai un code python qui exporte des données dans un csv, puis je charge ce csv dans Tableau. Je ne veux pas charger un csv dans tableau.
Y a-t-il un moyen de simplement prendre la valeur return
de mon script python et de la mettre directement dans tableau?
La question est similaire à Exporter des données de Python dans Tableau à l'aide de JSON? , mais ils se renseignent sur le format Json et la réponse était d'utiliser csv. Je veux sauter l'étape csv si possible. Les données que je renvoie seront dans un format tabulaire.
3 Réponses :
Assurez-vous que votre extrait Tableau actuel est une «source de données Tableau», puis utilisez «l'utilitaire de ligne de commande d'extraction de données Tableau» pour pousser les données dans Tableau. Vous utilisez os.system ou sous-processus pour appeler l'exécutable tableau. Une mise en garde est que cette chose ne fonctionne que sous Windows.
https : //onlinehelp.tableau.com/current/pro/desktop/en-us/extracting_TDE.htm
Chargement d'un exemple de fichier csv depuis le site Tableau:
C:\Program Files\Tableau\Tableau 2019.1\bin>tableau addfiletoextract --server https://our_server_name --username OurServerSignIn --password "OurServerPwd" --project "New Animations" --datasource "CurrentYrOverYrStats" --file "C:\Users\user1\Documents\DataUploadFiles\AprMay.csv"
Salut, je ne veux pas charger un csv, je veux charger directement des données python.
Si vous utilisez Tableau Server, vous feriez mieux de pousser les données vers Google Sheets avec Python et l'API Sheets, puis d'utiliser Tableau pour référencer cette feuille en tant que source de données.
ah, im justing using tableau workbook. Il n'y a aucun moyen de prendre un fichier d'entrée de python dans tableau?
Pensez à utiliser TabPy a>. Il renvoie les valeurs créées par les scripts sous forme de champs calculés dans un classeur.
Sinon, Tableau fonctionne uniquement comme une couche au-dessus d'une source de données. Malheureusement, il n’existe pas de chargement direct de données.
La façon dont je gère généralement des tâches comme celle-ci est de demander à Python de charger des données directement dans un magasin de données. Toutes les nouvelles informations - ou informations écrasées - peuvent ensuite être consultées avec la connexion de données existante de votre classeur Tableau.
Un moyen simple de le faire, sans avoir à utiliser une base de données formelle, est de charger systématiquement le CSV au même endroit avec le même nom. Ensuite, une fois que Tableau est ouvert avec la connexion préexistante, il suffit d'un clic sur "Actualiser".
Je comprends que votre objectif est que Tableau remplisse vos données directement à partir de Python, et je suis désolé que ce ne soit pas la réponse que vous souhaitiez probablement, mais il y a du travail backend à faire. Si cela est fait correctement, cependant, l'effet final pour n'importe quel utilisateur peut sembler être rendu directement à partir de Python.
Merci Daniel, donc TabPy me permettrait de créer des scripts sous forme de champs calculés mais je devrais également utiliser un magasin de données? Je vais devoir en savoir plus sur TabPy. Je pense juste faire le truc csv, je voulais vraiment sauter cette étape du milieu, mais si c'est plus facile, peut-être que c'est mieux.
Je n'ai pas essayé d'utiliser TabPy sans données préexistantes dans le classeur Tableau. Il est généralement utilisé pour appeler un script à l'aide de champs dans Tableau - lorsqu'un utilisateur souhaite faire des choses que Tableau ne peut pas faire de manière native. (Pensez que K signifie clustering ou corrélation.) Il est théoriquement possible qu'il puisse renvoyer des données à Tableau sans avoir de données préexistantes, mais oui, cela vaut la peine d'être examiné. (À titre d'exemple, mes scripts Python sortent directement au format CSV dans AWS S3, qui est ensuite lu par AWS Athena via Tableau. C'est très efficace, mais quelque peu encombrant si vous cherchez simplement quelque chose de rapide.)
L'une des options existantes de l'écran "Connecter" de Tableau Desktop est "Web Data Connector", qui peut se connecter à tout type de serveur Web et obtenir des données via un protocole bien documenté . Je soupçonne que cela inclurait un serveur Web fonctionnant sur localhost écrit en Python . < / p>
Si vous voulez suivre cette voie, il faudrait soit changer votre script Python existant pour le transformer en un serveur Web qui transmet la sortie du script via la connexion de données Web, soit (de préférence) créer un code Python très général qui pourrait qui pourrait envelopper un script arbitraire de n'importe quel type de cette manière, exposant sa sortie en tant que connexion de données Web.
Vous devrez bien sûr laisser ce script Python en cours d'exécution, en écoutant les connexions de Tableau.
je pense que c'est au-dessus de mon savoir-faire technique! mais merci!
Pourquoi veux-tu ça? CSV est le format d'échange de données tabulaires, simple, compact, texte uniquement et accessible depuis presque n'importe quel langage ou logiciel. Quel autre format voudriez-vous utiliser?
Je veux sauter l'étape intermédiaire de l'écriture en csv, puis demander à tableau de le charger. Je ne le veux pas dans un autre format, désolé n'était pas clair. Je veux juste une connexion directe de python à tableau.