JSON (JavaScript Object Notation) est un format d'échange de données léger qui suit la spécification JavaScript établie par l'European Computer Association (dénommée ECMAScript).
JSON est facile à lire et à écrire pour les gens, et il est également facile à analyser et à générer pour les machines. Il peut améliorer efficacement l'efficacité de la transmission des informations sur le réseau. Par conséquent, il est souvent utilisé comme langage standard pour transmettre des informations entre les réseaux. et les programmes, par exemple entre les clients et les serveurs. L'interaction des informations est fournie au format JSON.
En termes simples, JSON peut convertir un ensemble de données représenté par des objets JavaScript dans un format de chaîne pour faciliter la transmission de cette chaîne sur le réseau et entre les programmes. Et si nécessaire, il peut être converti dans un format de données pris en charge par le langage de programmation. Cette section présente principalement comment implémenter la conversion entre les données JSON et les types de données Python.
Le langage Python dispose d'un module intégré spécialisé dans le traitement des données JOSN - le module jons. Grâce à ce module, la conversion entre les formats de données JSON et Python peut être effectuée.
Cette méthode peut convertir des chaînes au format json en objets Python (tels que des listes, des dictionnaires, des tuples, des entiers et des types à virgule flottante), dont le plus couramment utilisé est la conversion en types de dictionnaire. L'exemple est le suivant :
# coding:utf8 import json #JOSN字符串 website_info='{"name" : "CSDN","PV" : "2000万","UV" : "800万","create_time" : "1999年"}' py_dict=json.loads(website_info) print("python字典数据格式:%s;数据类型:%s"% (py_dict,type(py_dict)))
Résultat de sortie :
format de données du dictionnaire Python : {'name' : 'CSDN', 'PV' : '20 millions', 'UV' : '8 millions', 'create_time' : '1999 year'}; Type de données :
Remarque : La chaîne JSON dans l'exemple ci-dessus ressemble beaucoup au dictionnaire Python, mais son essence est différente. tandis que le dictionnaire Python est de type dict.
Il peut convertir des objets Python (dictionnaires, listes, etc.) en chaînes json et écrire les données converties dans des fichiers au format json, cette méthode doit donc fonctionner sur des objets de flux de fichiers. Par exemple, après avoir utilisé un programme d'exploration pour terminer la capture des données, il est parfois nécessaire de sauvegarder les données au format json. Dans ce cas, la méthode json.dump() est utilisée. Le format de syntaxe est le suivant :
json.dump(object,f,inden=0,ensure_ascii=False)
Le. La description du paramètre est la suivante :
object : objets de données Python, tels que des dictionnaires, des listes, etc.
f : objet de flux de fichiers, c'est-à-dire un descripteur de fichier.
indent : formatez les données stockées pour faciliter la lecture des chaînes JSON.
ensure_ascii : s'il faut utiliser le codage ascii. Lorsque le chinois apparaît dans les données, il doit être défini sur False.
Un exemple est le suivant :
import json ditc_info={"name" : "CSDN","PV" : "2000万","UV" : "800万","create_time" : "1999年"} with open("web.josn","a") as f: json.dump(ditc_info,f,ensure_ascii=False)
Ouvrez le fichier web.json, son contenu est le suivant :
{ "name": "CSDN", "PV": "2000万", "UV": "800万", "create_time": "1999年" }
Vous pouvez également convertir la liste Python en chaîne JSON et l'enregistrer dans un fichier json comme suit :
import json item_list = [] item = {'website': 'CSDN', 'url': "www.CSDN.net"} for k,v in item.items(): item_list.append(v) with open('info_web.json', 'a') as f: json.dump(item_list, f, ensure_ascii=False)
Ouvrez le fichier info_web.json, son contenu est le suivant :
["CSDN", "www.CSDN.net"]
Cette méthode est utilisée pour faire fonctionner le fichier stream, mais il est différent de dump(), c'est tout le contraire, cela signifie lire une chaîne JSON à partir d'un fichier json et convertir le contenu lu en un objet Python. Les exemples d'utilisation sont les suivants :
import json site = {'name':'CSDN',"url":"www.CSDN.net"} filename = 'website.json' with open (filename,'w') as f: json.dump(site,f,ensure_ascii=False) with open (filename,'r') as f: print(json.load(f))
Les résultats de sortie sont les suivants :
{'name' : 'CSDN', 'url' : 'www.CSDN.net'}
Cette méthode peut convertir Python L'objet est converti en chaîne JSON. L'exemple est le suivant :
import json #python字典 item = {'website': 'CSDN', 'rank': 1} # json.dumps之后 item = json.dumps(item,ensure_ascii=False) print('转换之后的数据类型为:',type(item)) print(item)
Le résultat de sortie est le suivant :
Le type de données converties est :
{"website": "CSDN", "url": "www. CSDN.net"}
Enfin, un bref résumé des méthodes ci-dessus est donné, comme indiqué dans le tableau suivant :
method | Function |
---|---|
json.dumps() | Convertissez les objets Python en chaînes JSON. |
json.loads() | Convertissez la chaîne JSON en objet Python. |
json.dump() | Convertissez des objets en Python en chaînes JSON et stockez-les dans des fichiers. |
json.load() | Convertissez la chaîne JSON du fichier en un objet Python et extrayez-la. |
En résumé, json.load() et json.dump() opèrent sur des objets de flux de fichiers et réalisent les opérations de lecture et d'écriture de fichiers json, tandis que json.loads() et json.dumps() opèrent sur Is un objet Python ou une chaîne JOSN.
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!