décoder des données json en python

Comment encoder et décoder des données JSON en Python

Partagez sur:

Dans cet article, nous expliquerons comment encoder et décoder des données JSON en Python.

JSON est un format de données textuel lisible par l’homme. Il est indépendant du langage et utilisé pour l’échange de données entre les applications.

LIRE AUSSI: Comment installer Python 3.9 sur Ubuntu 20.04

 

Encoder et décoder des données JSON en Python

Le module json qui vous permet d’encoder et de décoder des données JSON fait partie de la bibliothèque standard Python.

JSON est une chaîne qui représente des données. L’encodage ou la sérialisation consiste à transformer un objet Python en une chaîne JSON qui peut être stockée dans un fichier ou transmise sur le réseau.

LIRE AUSSI: Livre: Apprendre à programmer avec python 3

Décodage ou désérialisation du processus inverse de codage où une chaîne JSON est transformée en objet Python.

Vous trouverez ci-dessous un tableau montrant les objets Python et leur représentation JSON équivalente:

Python JSON
dict object
list, tuple array
str string
int, float number
True true
False false
None null

 

Pour travailler avec JSON dans Python, importez simplement le module en haut de votre fichier:

import json


Encoder des données Python en JSON

Le module json a deux méthodes pour encoder des données Python dans des chaînes au format JSON: dump () et dumps ().

LIRE AUSSI: Comment installer Python 3.7 sur Ubuntu 18.04

La méthode dump () envoie la sortie à un objet de type fichier. Il prend deux arguments de position: l’objet à encoder et l’objet de type fichier.

Voici un exemple:

data = {
    "country": "Germany",
    "vehicle": {
        "name": "Volkswagen",
        "model": "T-Roc"
    }
}

with open("file.json", "w") as file:
    json.dump(data, file)

 

Si vous exécutez le script, il créera un fichier nommé file.json:

file.json
{"country": "Germany", "vehicle": {"name": "Volkswagen", "model": "T-Roc"}}

 

La méthode dumps() fonctionne de la même manière que dump() mais au lieu d’envoyer la sortie à un objet de type fichier, elle renvoie une chaîne:

data = {
    "country": "Germany",
    "vehicle": {
        "name": "Volkswagen",
        "model": "T-Roc"
    }
}

json.dumps(data)

 

Output
'{"country": "Germany", "vehicle": {"name": "Volkswagen", "model": "T-Roc"}}'

Les deux méthodes acceptent les mêmes arguments de mot-clé.

Par exemple, si vous analysez ou déboguez les données JSON, vous souhaiterez peut-être spécifier le niveau d’indentation:

data = {
    "country": "Germany",
    "vehicle": {
        "name": "Volkswagen",
        "model": "T-Roc"
    }
}

print(json.dumps(data, indent=2))

 

Sortie:

{
  "country": "Germany",
  "vehicle": {
    "name": "Volkswagen",
    "model": "T-Roc"
  }
}

 


 

Décoder des données JSON en Python

Pour transformer des données encodées JSON en objets Python, utilisez les méthodes load() et loads().

La méthode load() lit la structure JSON à partir d’un objet de type fichier et la transforme en objet Python.

Supposons que nous ayons le fichier JSON suivant:

file.json

[
  {
    "userId": 1,
    "id": 1,
    "title": "Meet with Lisa",
    "completed": true
  },
  {
    "userId": 1,
    "id": 2,
    "title": "Design a prototype",
    "completed": false
  }
]

Pour transformer les données JSON en une représentation Python, vous utiliseriez quelque chose comme ceci:

import json

with open('file.json') as f:
  data = json.load(f)

type(data)

 

Le JSON est transformé en une liste Python, que vous pouvez utiliser dans votre code:

<class 'list'>

La méthode loads() convertit une chaîne contenant un document JSON en un objet Python:

import json

json_str= '{"userId": "1", "id": "1", "title": "Meet with Lisa", "completed": "True"}'

print(json.loads(json_str))

 

La chaîne est transformée en dictionnaire Python:

{'userId': '1', 'id': '1', 'title': 'Meet with Lisa', 'completed': 'True'}

Voici un exemple plus avancé qui montre comment faire une demande d’API et décoder les données JSON:

import json
import requests

response = requests.get("https://jsonplaceholder.typicode.com/users")
users = json.loads(response.text)

print(users)

 

Conclusion

Nous vous montrons comment encoder et décoder des données JSON en Python.

Si vous avez des questions ou des commentaires, n’hésitez pas à laisser un commentaire.


Partagez sur: