Quelle est la différence entre json.load() et json.les charges de fonctions()
En Python, quelle est la différence entre json.load()
et json.loads()
?
Je suppose que le load() fonction doit être utilisée avec un fichier objet (j'en ai besoin donc d'utiliser un gestionnaire de contexte), alors que le charges() fonction, prenez le chemin vers le fichier sous forme de chaîne. C'est un peu déroutant.
La lettre "s" dans json.loads()
stand pour chaîne?
Merci beaucoup pour vos réponses!
json.loads(s, *)
- Désérialisers
(unstr
,bytes
oubytearray
instance contenant un document JSON) - docs.python.org/3.6/library/json.html
Vous devez vous connecter pour publier un commentaire.
Oui,
s
est synonyme de chaîne. Lejson.loads
fonction ne prend pas le chemin d'accès au fichier, mais le contenu du fichier sous forme de chaîne. Regardez la documentation à https://docs.python.org/2/library/json.html!La Documentation est très claire: https://docs.python.org/2/library/json.html
Donc
load
pour un fichier,loads
pour unstring
Aller juste pour ajouter un simple exemple de ce que tout le monde l'a expliqué,
json.load()
json.load
peut désérialiser un fichier lui-même c'est à dire qu'il acceptefile
objet,sera de sortie,
Si j'ouvre un fichier et utiliser
json.loads
au lieu de cela,Je voudrais obtenir cette erreur:
json.charges()
json.loads()
deserailize chaîne.à l'aide de
content.read()
avecjson.loads()
retour contenu du fichier,De sortie,
C'est parce que le type de
content.read()
est une chaîne, c'est à dire<type 'str'>
Si j'utilise
json.load()
aveccontent.read()
j'obtiens l'erreur,Donne,
Donc, maintenant vous savez
json.load
deserialze fichier etjson.loads
désérialiser une chaîne de caractères.Un autre exemple,
sys.stdin
retourfile
objet, donc, si je neprint(json.load(sys.stdin))
, je vais obtenir réel des données json,Si je veux utiliser
json.loads()
, je neprint(json.loads(sys.stdin.read()))
à la place.RÉPONSE RAPIDE (très simplifié!)
EXEMPLES