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

Comment convertir une chaîne en JSON en Python

JSON signifie JavaScript Object Notation. Bien que son nom indique qu'il est associé au langage de programmation JavaScript, le format JSON est indépendant du langage et fréquemment utilisé dans de nombreux langages de programmation différents.

Qu'est-ce qu'un fichier JSON ?

Les fichiers JSON sont couramment utilisés pour transférer des données entre ordinateurs. Par exemple, lors du téléchargement d'un fichier à partir d'une API, vous devez souvent gérer des fichiers JSON. Voici un excellent article qui explique comment télécharger un fichier en Python à partir d'une API.

Voici un exemple de fichier JSON :

{
	"employee": [
		{
			"FirstName": "John",
			"LastName": "Doe",
			"Age": "29",
			"Profession": "Engineer"

		},
		{
			"FirstName": "Jane",
			"LastName": "Doe",
			"Age": "27",
			"Profession": "Doctor"
		}
	]
}

Les fichiers qui stockent des données au format JSON sont appelés fichiers JSON. Ces fichiers sont basés sur du texte, lisibles par l'homme et faciles à traiter, ce qui les rend très populaires.

Dans cet article, nous allons apprendre à convertir une chaîne en JSON en Python et à créer des fichiers JSON à partir d'objets Python.

Travailler avec des fichiers JSON en Python

Python a une bibliothèque intégrée appelée json qui fournit des méthodes simples et efficaces pour travailler avec des fichiers JSON. Passons en revue quelques exemples qui montrent comment convertir une chaîne en JSON en Python et vice versa.

Du JSON à l'objet Python :désérialisation

Voici une chaîne JSON :

>>> example = '{"FirstName":"John", "LastName":"Doe","Age":29, "Profession":"Engineer"}'

Nous pouvons utiliser le loads() méthode du json bibliothèque pour convertir cette chaîne en objet Python :

>>> import json
>>> myobject = json.loads(example)

Nous venons de convertir des données encodées JSON en un objet Python. Ce processus est appelé désérialisation. L'objet Python résultant est un dictionnaire. Un dictionnaire Python se compose de paires clé-valeur et nous pouvons facilement accéder à ses éléments à l'aide des clés. Par exemple, si nous voulons accéder au FirstName dans le myobject dictionnaire, nous écrivons :

>>> myobject["FirstName"]

'John'

Si nous avons un fichier JSON et que nous voulons le transformer en un objet Python, nous pouvons utiliser le load() méthode. Jetez un coup d'œil au fichier JSON "employé" au début de l'article. Le bloc de code suivant lit ce fichier et l'enregistre dans un dictionnaire Python.

>>> with open("employee.json", "r") as read_file:
...     employee = json.load(read_file)
...
>>> print(employee)

{'employee': [{'FirstName': 'John', 'LastName': 'Doe', 'Age': '29', 'Profession': 'Engineer'}, {'FirstName': 'Jane', 'LastName': 'Doe', 'Age': '27', 'Profession': 'Doctor'}]}

Maintenant employee est un objet de dictionnaire Python.

Il est important de souligner la différence entre le json bibliothèque load( ) et loads() méthodes. La méthode load est utilisée pour créer un objet Python à partir d'un fichier JSON , alors que le loads() convertit une chaîne JSON en un objet Python.

De l'objet Python à la chaîne JSON :sérialisation

Tout comme nous pouvons créer un objet Python à partir d'un fichier JSON, nous pouvons convertir un objet Python en une chaîne ou un fichier JSON. Ce processus s'appelle la sérialisation.

Le dumps() convertit un dictionnaire Python en une chaîne JSON. Dans la section de désérialisation, nous avons créé un dictionnaire appelé myobject . Il peut être reconverti en chaîne JSON comme suit :

>>> json.dumps(myobject)
'{"FirstName": "John", "LastName": "Doe", "Age": 29, "Profession": "Engineer"}'

La sortie est une chaîne (remarquez les guillemets simples autour des accolades), nous ne pouvons donc pas accéder à une paire clé-valeur spécifique comme nous le faisons avec les dictionnaires.

Cette chaîne très simple n'est pas difficile à lire. Cependant, les chaînes JSON peuvent être beaucoup plus longues et avoir des parties imbriquées. Dans de tels cas, le dumps() fournit une méthode d'impression plus lisible. Nous pouvons assez imprimer cette chaîne en définissant le paramètre d'indentation facultatif :

>>> print(json.dumps(myobject, indent=3))

{
   "FirstName": "John",
   "LastName": "Doe",
   "Age": 29,
   "Profession": "Engineer"
}

Le dumps() a également un paramètre de tri par clé :

>>> print(json.dumps(myobject, indent=3, sort_keys=True))

{
   "Age": 29,
   "FirstName": "John",
   "LastName": "Doe",
   "Profession": "Engineer"
}

Les fichiers JSON sont souvent utilisés pour la sérialisation (décapage), par ex. lorsque vous souhaitez conserver certaines données entre les exécutions de votre application. Vous pouvez en savoir plus sur la sérialisation des objets dans cet article.

Création d'un fichier JSON avec dump()

Le dumps() convertit un objet Python en une chaîne au format JSON. Nous pouvons également créer un fichier JSON à partir de données stockées dans un dictionnaire Python. La méthode pour effectuer cette tâche est dump() .

Utilisons le dump() méthode de création d'un fichier JSON. Nous utiliserons le dictionnaire des employés que nous avons créé dans la section précédente :

with open("new_employee.json", "w") as write_file:
    json.dump(employee, write_file, indent=4)

Cela crée un fichier appelé new_employee.json dans votre répertoire de travail actuel et l'ouvre en mode écriture. Ensuite, nous utilisons le dump() méthode pour sérialiser un dictionnaire Python.

Le dump() La méthode prend deux arguments de position. Le premier est l'objet qui stocke les données à sérialiser (ici, un dictionnaire Python). Le second est le fichier pour écrire les données sérialisées. Le indent paramètre est facultatif.

Impression dans la ligne de commande

Le tool() méthode du json permet d'imprimer joliment les fichiers JSON dans la ligne de commande. Essayons-le sur le new_employee.json fichier que nous avons créé dans la section précédente.

La première étape consiste à ouvrir une interface de ligne de commande. Ensuite, nous devons changer le répertoire à l'emplacement où le new_employee.json le fichier est enregistré.

La commande suivante imprimera le fichier JSON dans un format agréable et propre :

python -m json.tool new_employee.json

L'image suivante montre à quoi elle ressemble dans l'invite de commande Windows.

En savoir plus sur JSON et Python

Nous avons expliqué comment lire et écrire des fichiers JSON en Python. La bibliothèque json intégrée facilite la réalisation de ces deux éléments. L'un des avantages de Python est la riche sélection de bibliothèques intégrées et tierces qui simplifient la plupart des tâches.

Si vous apprenez ou prévoyez d'apprendre Python, notre piste Apprendre à programmer avec Python est un excellent moyen de commencer. Il est conçu pour les débutants et contient 5 cours interactifs. L'avantage d'apprendre avec un cours interactif est que vous obtenez une pratique réelle et pratique de l'écriture de code; c'est essentiel pour apprendre un langage de programmation.

LearnPython.com propose également un cours complet dédié aux fichiers JSON en Python. Le cours est également interactif et contient 35 exercices. Si vous souhaitez mettre en pratique les concepts dont nous avons parlé dans cet article, ce cours est fait pour vous. Bon apprentissage !


Post précédent
No