0
votes

Python obtient la liste JSON de CURL incorrectement

im en utilisant python3, j'envoie une requête de post Curl à mon API:

"['a1','b2']"


0 commentaires

3 Réponses :


0
votes

Voulez-vous laisser la console imprimer aussi les guillemets?

Si oui, vos données JSON doivent être {"Tags": "\" [\ 'A1 \', \ 'B2 \'] \ ""}


4 commentaires

{"tags"}: "\" [\ 'A1 \', \ 'B2 \'] \ "" Ce n'est pas un format JSON, comment puis-je l'appliquer?


La chaîne est "\" [\ 'A1 \', \ 'b2 \'] \ ""


et oops que je désactive le } . Cela devrait être au dernier.


Merci, j'ai fini par l'envoyer comme ceci: Curl --Header "Application de type de contenu / JSON" --Request Post -Data {"Tags": "[\ 'A1 \', \ 'B2 \' ] "



0
votes

Si Data ['Tags'] est une chaîne, je peux penser à plusieurs solutions possibles:

  • les expressions régulières des utilisateurs pour ajouter ' autour de chaque étiquette dans un chaîne
  • itérer sur une chaîne, remplaçant [ à [', , sur ', ' et ] à '] . Bien sûr, celui-ci dépend de l'absence d'espaces entre les étiquettes.
  • Si des valeurs de balises possibles sont connues - il suffit de les chercher dans une chaîne donnée

    Ma préférence serait d'utiliser une expression régulière, mais il n'est pas possible d'écrire un sans savoir quelle éventuelle tag peut ressembler à.


0 commentaires

0
votes

Le problème n'est pas du côté python, et même pas du côté de la curl; Au lieu de cela, il s'agit de savoir comment la coquille interprète la ligne de commande avant de passer les arguments à courburer. Vous pouvez voir ce qui se passe si vous utilisez echo au lieu de curl : xxx

sorties: xxx

Vous ne pouvez pas simplement utiliser des guillemets simples à l'intérieur d'une chaîne délimitée par ces mêmes guillemets simples. Ma première pensée était d'échapper aux citations simples pour résoudre le problème, mais je ne trouve pas un moyen de le faire. Par conséquent, je pense qu'il est préférable d'utiliser des guillemets doubles comme des délimiteurs de chaîne et d'échapper aux citations doubles dans la chaîne (avec une barre oblique inverse), comme: xxx

sorties: > xxx

modifiant la commande CURL à ceci devrait fonctionner: xxx

assez encombrant si vous me demandez, mais je ne me le demande pas voir une meilleure façon.


0 commentaires