0
votes

Y a-t-il un moyen de créer JSON à partir de .csv sans importer de CSV?

J'ai des données de CSV simples qui viennent de vivre à partir de Google Feuilles et que je souhaite le formater comme JSON en utilisant Python afin que je puisse le poster à une API.

y a-t-il un moyen de le faire sans importer CSV code>? p>

Zapier ne prend pas en charge l'importation d'une autre chose que Demandes code>. p>

Exemple de données CSV: P>

    File "<string>", line 11, in the_function
NameError: name 'data' is not defined


12 commentaires

faire une chaîne Remplacement de ligne avec [ et une chaîne Remplacement de \ n avec ], puis jetez-le Il se trouve à l'intérieur d'un autre ensemble de [] ? Peut-être utile de spécifier la manière dont vous souhaitez que le JSON sortit ressemble à une liste des listes


Je ne sais pas que cela fonctionnerait avec un nombre variable de lignes, je pense qu'il a besoin de boucler et de formater.


Bien sûr, il est détaillé ici: zapier.com/apps/code/ Aide # nécessitant - ou à utiliser-l'utiliser-externe-libreau


Je ne sais pas comment avoir plus de lignes ou moins de rangées ferait mon commentaire ne fonctionnerait pas


Vient de voir la question mise à jour - je vous recommanderais de mettre un format attendu de votre sortie JSON


Qu'est-ce que vous voulez dire...? Excusez mon inconnu avec Python, je ne suis pas un développeur, d'où utilise Zapier.


Selon leur Documentation - seulement La bibliothèque et les demandes Standard Python sont disponibles . Donc, importer csv doit être autorisé car il s'agit d'une bibliothèque python standard.


Que voulez-vous le .json que vous ayez à ressembler? Voulez-vous [[1,123.100,1], [2,123,56,2], ... ou quelque chose d'autre comme [{"Nom": "rangée", "id": 1 , "Prix": 100, "Qté": 1}, ... ou autre chose?


Avez-vous entendu parler de csvkit ? Il possède un programme CSVJSON décrit ici


CSV est un format de texte délimité très simple, vous devriez donc pouvoir lire et convertir Dans l'objet JSON (équivalent à un dictionnaire python) au format avec peu de difficulté.


@Quinn je dirais plus comme ce dernier


@Martinvans intéressants, j'ai l'impression d'aller quelque part, mais je ne peux pas sembler le faire fonctionner. Je pourrais poster une mise à jour.


3 Réponses :


0
votes

L'erreur est que data.csv n'est pas un nom de variable valide, vous ne pouvez pas avoir '.' ' là-bas.

Je ne sais pas à quel point Zapier fonctionne, mais si vous essayez de lire les données d'un fichier appelé 'data.csv' et si vous souhaitez une sortie dans le format suivant P>

[{"Nom": "rangée", "id": 1, "prix": 100, "Qté": 1}, ... code> p>

Essayez p> xxx pré>

si vous essayez d'analyser le test de la variable "INPUT_DATA" (à laquelle on ressemble à l'essai de le faire), essayez. P>

input = input_data['data'].split("\n")

s = "["
for k in input[1:]: # For every line except for the header
  s += '{{"Name": "{}", "ID": {}, "Price": {}, "Qty": {}}}, '.format(*k.split(","))
s += "]"


1 commentaires

Je vois que c'est intéressant, mais où est-ce que cela reçoit les données? J'ai partagé un scénario ci-dessus.



0
votes

Selon le Documentation Zapier :

Seule la bibliothèque python standard et les demandes sont disponibles.

donc import csv et import json serait autorisé car ce sont des bibliothèques standard Python.

Il dépend alors de quoi format que vous souhaitez que le format de sortie JSON soit. Une conversion très simple et directe consisterait à utiliser le standard python csv et json comme suit: xxx

donnant Vous un fichier JSON de sortie comme suit: xxx


0 commentaires

0
votes

David ici, de l'équipe de la plate-forme Zapier.

Comme d'autres personnes ont mentionné, data.csv = ... n'est pas valide python, d'où votre erreur.

Pour donner un certain contexte, votre code Python est configuré comme: xxx

pour analyser que votre code devrait être quelque chose comme: xxx

qui devrait vous laisser transformer les données en une forme que vous souhaitez!

Vous avez mentionné vouloir envoyer les données à une API - Vous pouvez le faire dans ce domaine. pas de code aussi. Voir Exemples HTTP .


1 commentaires

Cool! Si cette réponse résolvait votre problème, assurez-vous de la remettre et de la marquer comme correctes ( info ).