Quelle est la différence entre json.load() et json.charge les fonctions () en Python?

En Python, quelle est la différence entre json.load() et json.charge () ?

Je suppose que la fonction load() doit être utilisée avec un objet file (j'ai donc besoin d'utiliser un gestionnaire de contexte) tandis que la fonction loads() prend le chemin du fichier en tant que chaîne. C'est un peu déroutant.

Est la lettre "s" dans json.loads () signifie Chaîne?

Merci beaucoup pour vos réponses!

54
demandé sur Josh 2016-09-27 11:24:26

2 réponses

Oui, s signifie chaîne. La fonction json.loads ne prend pas le chemin du fichier, mais le contenu du fichier sous forme de chaîne. Regardez la documentation à https://docs.python.org/2/library/json.html!

59
répondu Gijs 2018-08-21 22:42:20

La Documentation est assez claire: https://docs.python.org/2/library/json.html

json.load(fp[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])

Désérialiser fp (A.read()-supporte un objet de type fichier contenant un Document JSON) à un objet Python en utilisant cette table de conversion.

json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])

Désérialiser s (une instance str ou unicode contenant un document JSON) à un objet Python en utilisant cette table de conversion.

, Donc load est un fichier, loads pour un string

21
répondu RvdK 2016-09-27 08:26:57