Maison > développement back-end > Tutoriel Python > Compréhension approfondie de l'analyse Python de Json_python

Compréhension approfondie de l'analyse Python de Json_python

不言
Libérer: 2018-04-02 17:26:05
original
1475 Les gens l'ont consulté

Json est une structure d'échange de données couramment utilisée. En raison de ses caractéristiques légères et faciles à lire et à écrire, elle est largement utilisée sur Internet. L'article suivant présente principalement les informations pertinentes sur l'analyse Json par Python. Les amis dans le besoin peuvent s'y référer.

Introduction à Json

JSON (JavaScript Object Notation) est un format d'échange de données léger. Il est basé sur un sous-ensemble de JavaScript (Standard ECMA-262 3e édition – décembre 1999). JSON utilise un format de texte totalement indépendant du langage, mais utilise également des conventions similaires à la famille des langages C (notamment C, C++, C#, Java, JavaScript, Perl, Python, etc.). Ces propriétés font de JSON un langage d'échange de données idéal. Facile à lire et à écrire pour les humains, et facile à analyser et à générer pour les machines.

Son format est généralement le suivant :

Un objet est une collection non ordonnée de « paires nom/valeur ». Un objet commence par "{" (crochet gauche) et se termine par "}" (crochet droit). Chaque "nom" est suivi d'un ":" (deux-points) ; les paires "nom/valeur" sont séparées par un "," (virgule).

Par exemple :


{"b": "Hello", "c": null, "a": true}
Copier après la connexion


Sa valeur peut être entre guillemets doubles. chaîne, nombre, vrai, faux, nul, objet ou tableau. Ces structures peuvent être imbriquées.


La valeur (valeur) peut être une chaîne entourée de guillemets doubles (chaîne), une valeur numérique (nombre), vrai, faux, nul, un objet (objet ) Ou un tableau. Ces structures peuvent être imbriquées.

Utilisez Python pour encoder et analyser Json

Python dispose d'un package json intégré pour nous aider à effectuer les opérations json.

Pour exporter la structure du dictionnaire Python vers json, utilisez json.dumps() Pour lire json dans la structure du dictionnaire Python, utilisez json.loads() .

S'il ne s'agit pas d'une opération de chaîne mais d'une opération de fichier, utilisez respectivement la fonction json.load() et la fonction json.dump().


import json
 
data = {
 'name' : 'ACME',
 'shares' : 100,
 'price' : 542.23
}
 
json_str = json.dumps(data)
data = json.loads(json_str)
 
# Writing JSON data to file
with open('data.json', 'w') as f:
 json.dump(data, f)
 
# Reading data back
with open('data.json', 'r') as f:
 data = json.load(f)
Copier après la connexion


Les types par défaut correspondent aux éléments suivants :


JSONPython
objectdict
arraylist
stringunicode
number (int)int, long
number (real)float
trueTrue
falseFalse
nullNone

Encodage et décodage entre d'autres types de données et Json

De manière générale, l'analyse de json par Python est une opération entre list ou dict , si vous besoin de convertir entre d'autres types et json, vous avez besoin du paramètre object_hook. Définissez d’abord une classe et initialisez le dictionnaire de classe en paires clé-valeur json. De cette façon, les paramètres de json deviennent des attributs de la classe.

Convertir un dictionnaire JSON en un objet Python Python


>>> class JSONObject:
...  def __init__(self, d):
...   self.__dict__ = d
...
>>>
>>> data = json.loads(s, object_hook=JSONObject)
>>> data.name
'ACME'
>>> data.shares
50
>>> data.price
490.1
Copier après la connexion


peut également être spécifié par "Fonction" pour effectuer la conversion.

Utilisez une fonction pour spécifier la méthode de sérialisation, c'est-à-dire transformer la paire "attribut-valeur" de l'objet en une paire de dictionnaire. La fonction renvoie un dictionnaire, puis json.dumps formatera le dictionnaire. .

Si json est transformé en objet via une fonction, obtenez d'abord le nom de la classe, puis créez un objet via __new__ (sans appeler la fonction d'initialisation), puis attribuez chaque attribut du dictionnaire json au objet.

Utiliser la fonction pour spécifier la méthode de conversion json Python


def serialize_instance(obj):
 d = { '__classname__' : type(obj).__name__ }
 d.update(vars(obj))
 return d
 
# Dictionary mapping names to known classes
classes = {
 'Point' : Point
}
 
def unserialize_object(d):
 clsname = d.pop('__classname__', None)
 if clsname:
  cls = classes[clsname]
  obj = cls.__new__(cls) # Make instance without calling __init__
  for key, value in d.items():
   setattr(obj, key, value)
  return obj
 else:
  return d
Copier après la connexion


utiliser La méthode est la suivante :


>>> p = Point(2,3)
>>> s = json.dumps(p, default=serialize_instance)
>>> s
'{"__classname__": "Point", "y": 3, "x": 2}'
>>> a = json.loads(s, object_hook=unserialize_object)
>>> a
<__main__.Point object at 0x1017577d0>
>>> a.x
2
>>> a.y
3
Copier après la connexion


Recommandations associées :

Python analyse de JSON Explication détaillée

Exemples de la méthode Python de jugement des chaînes Json

Compréhension approfondie du résumé des opérations JSON de Python



Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal