Python >> Tutoriel Python >  >> Python Tag >> JSON

Jolie impression JSON [Python One-Liner]

Problème :Étant donné un objet JSON. Comment l'imprimer joliment depuis le shell/terminal/ligne de commande en utilisant une ligne Python ?

Exemple minimal :Vous avez fourni l'objet JSON suivant :

{"Alice": "24", "Bob": "28"}

Et vous souhaitez obtenir la sortie d'impression suivante :

{
    "Alice": "24",
    "Bob": "28"
}

Comment y parvenir en utilisant une ligne Python ?

Méthode 0 :Programme Python + json.dump

La manière par défaut d'accomplir cela dans un script Python est d'importer le json bibliothèque pour résoudre le problème :

Exercice :Exécute le script. Quelle est la sortie ? Changez maintenant le nombre d'espaces d'indentation à 2 !

Cependant, que se passe-t-il si vous souhaitez l'exécuter à partir du terminal de votre système d'exploitation en tant que commande à une ligne ? Plongeons-nous dans les quatre meilleures façons !

Méthode 1 :Terminal / Shell / Ligne de commande avec Echo + Pipe + json.tool

La commande echo imprime le JSON sur la sortie standard. Ceci est ensuite redirigé comme entrée standard vers le json.tool programme qui imprime joliment l'objet JSON sur la sortie standard :

echo '{"Alice": "24", "Bob": "28"}' | python -m json.tool

La sortie est la plus jolie :

{
    "Alice": "24",
    "Bob": "28"
}

Le tuyauteur | redirige la sortie vers l'entrée standard du script Python.

Méthode 2 :Utiliser un fichier comme entrée avec json.tool

Une alternative est la plus simple :

python -m json.tool file.json

Cette méthode est préférable si vous avez stocké votre objet JSON dans le file.json dossier. Si le fichier contient les mêmes données, la sortie est également la même :

{
    "Alice": "24",
    "Bob": "28"
}

Méthode 3 :Utiliser la ressource Web avec json.tool

Si votre fichier JSON réside sur une URL donnée https://example.com , vous feriez mieux d'utiliser le one-liner suivant :

curl https://example.com/ | python -m json.tool

Encore une fois, en supposant que le même objet JSON réside sur le serveur, le résultat est le même :

{
    "Alice": "24",
    "Bob": "28"
}

Méthode 4 :Utilisez jq

C'est le moyen le plus simple mais cela suppose que vous avez le jq programme installé sur votre machine. Vous pouvez télécharger jq ici et découvrez également les excellentes ressources de démarrage rapide ici.

Plongeons-nous dans le code que vous pouvez exécuter dans votre shell :

jq <<< '{ "foo": "lorem", "bar": "ipsum" }'
{
  "bar": "ipsum",
  "foo": "lorem"
}

Le <<< L'opérateur passe la chaîne de droite à l'entrée standard de la commande de gauche. Vous pouvez en savoir plus sur cet opérateur de tuyau spécial dans ce fil SO.

Bien que cette méthode ne soit pas un script Python, elle fonctionne toujours parfaitement lorsqu'elle est exécutée à partir d'un shell Linux ou MacOS ou de la ligne de commande Windows Powershell/.

Livre Python One-Liners :maîtrisez d'abord la ligne unique !

Les programmeurs Python amélioreront leurs compétences en informatique avec ces lignes utiles.

Python One-Liners vous apprendra à lire et à écrire des « lignes simples » :des déclarations concises de fonctionnalités utiles regroupées dans une seule ligne de code. Vous apprendrez à décompresser et à comprendre systématiquement n'importe quelle ligne de code Python, et à écrire du Python éloquent et puissamment compressé comme un expert.

Les cinq chapitres du livre couvrent (1) les trucs et astuces, (2) les expressions régulières, (3) l'apprentissage automatique, (4) les principaux sujets de science des données et (5) les algorithmes utiles.

Des explications détaillées des one-liners introduisent les concepts clés de l'informatique etdéveloppez vos compétences en matière de codage et d'analyse . Vous découvrirez les fonctionnalités Python avancées telles que la compréhension de liste , tranchage , fonctions lambda , expressions régulières , carte et réduire fonctions et affectations de tranches .

Vous apprendrez également à :

  • Exploiter les structures de données pour résoudre des problèmes réels , comme utiliser l'indexation booléenne pour trouver des villes avec une pollution supérieure à la moyenne
  • Utiliser les bases de NumPy comme tableau , forme , axe , tapez , diffusion , indexation avancée , tranchage , tri , recherche , agrégation , et statistiques
  • Calculer des statistiques de base de tableaux de données multidimensionnels et les algorithmes K-Means pour l'apprentissage non supervisé
  • Créer davantage d'expressions régulières avancées en utilisant le regroupement et groupes nommés , anticipations négatives , caractères échappés , espaces blancs, jeux de caractères (et jeux de caractères négatifs ) et opérateurs gourmands/non gourmands
  • Comprendre un large éventail de sujets informatiques , y compris les anagrammes , palindromes , surensembles , permutations , factorielles , nombres premiers , Fibonacci chiffres, obscurcissement , recherche , et tri algorithmique

À la fin du livre, vous saurez comment écrire Python dans sa forme la plus raffinée , et créez de belles pièces concises d'"art Python" en une seule ligne.

Obtenez vos Python One-Liners sur Amazon !!