Maison >développement back-end >Tutoriel Python >Comment utiliser la bibliothèque standard json de Python
JSON (nom complet : JavaScript Object Notation) est un format d'échange de données texte léger. Le format de données de JSON est en fait le format de dictionnaire en Python, qui peut contenir des tableaux entre crochets, qui est une liste en python. . "JSON est indépendant du langage" est le format JSON
2. À quoi ressemble JSON ?
: {key1:value1, key2:value2,}
Format de paire clé-valeur (séparés par deux points), reliés par des virgules
: objet JSON
{ "name": "小明", "age": 18}
: tableau JSON
{ "student": [ {"name": "小明", "age": 11}, {"name": "小红","age": 10} ], "classroom": {"class1": "room1", "class2": "room2"}}
"
, les guillemets simples ne fonctionneront pas (donc si dans Les mots-clés apparaissent dans la clé et sont caractérisés), mais il n'y a aucune exigence obligatoire pour les objets en js (les mots-clés ne sont donc pas autorisés dans la clé) 2 Les fonctions ne sont pas autorisées dans la partie valeur de la paire clé-valeur de. json. fonction, non définie, NaN, mais peut avoir null, qui peut apparaître dans la valeur de l'objet dans js 3 Une fois les données json terminées, les virgules dénuées de sens ne sont pas autorisées, telles que : {"name. ":"admin" ,"age":18,}
, faites attention à la virgule après 18 à la fin des données, ce qui n'est pas autorisé. {key1:value1, key2:value2,}
键值对形式(用冒号分开),对间用逗号连接
简单案例:JSON 对象
# 格式1:JSON 对象{"name": "admin", "age": 18}# 格式2:JSON 数组{ "student": [ {"name": "小明", "age": 18}, {"name": "小红", "age": 16}, {"name": "小黑", "age": 20} ]}
复杂案例:JSON 数组
>>> import json # Python字典 >>> person = {"name": "小明", "age": 30, "tel": ["888888", "1351111111"], "isonly": True} >>> print(person) {'name': '小明', 'age': 30, 'tel': ['888888', '1351111111'], 'isonly': True} >>> type(person) <class 'dict' # Python字典转换为json字符串 >>> jsonStr = json.dumps(person) >>> print(jsonStr ) {"name": "\u5c0f\u660e", "age": 30, "tel": ["888888", "1351111111"], "isonly": true} >>> type(jsonStr) <class 'str'>
1、json的键值对的键部分,必须用双引号"
包裹,单引号都不行(所以如果在键中出现了关键字,也被字符化了),而js中对象没有强制要求(所以在键中不允许出现关键字)。
2、json的键值对的值部分,不允许出现函数function,undefined,NaN,但是可以有null,js中对象的值中可以出现。
3、json数据结束后,不允许出现没有意义的逗号,如:{"name":"admin","age":18,}
,注意看数据结尾部分18的后面的逗号,不允许出现。
正确的json格式如下:
>>> print(json.dumps(person, sort_keys=True, indent=4, separators=(',', ': '))){ "age": 30, "isonly": true, "name": "\u5c0f\u660e", "tel": [ "888888", "1351111111" ]}
错误的json格式如下:
1、使用jsON字符串生成python对象(load)
2、由python对象格式化成为ison字符串(dump)
将数据从Python转换到json
格式,在数据类型上会有变化,如下表所示:
Python | JSON |
---|---|
dict | object |
list, tuple | array |
str | string |
int, float, int- & float-derived Enums | number |
True | true |
False | false |
None | null |
反过来,将json格式转化为python内置类型,如下表所示:
JSON | Python |
---|---|
object | dict |
array | list |
string | str |
number(int) | int |
number(real) | float |
true | True |
false | False |
null | None |
json模块的使用其实很简单,对于绝大多数场合下,我们只需要使用下面四个方法就可以了:
方法 | 功能 |
---|---|
json.dumps(obj) |
将python数据类型转换为json格式的字符串。 |
json.dump(obj, fp) |
将python数据类型转换并保存到son格式的文件内。 |
json.loads(s) |
将json格式的字符串转换为python的类型。 |
json.load(fp) | 4. Résumé du format json
>>> print(json.dumps(person, sort_keys=True, indent=4, separators=('!', '-'))){ "age"-30! "isonly"-true! "name"-"\u5c0f\u660e"! "tel"-[ "888888"! "1351111111" ]🎜🎜Erreur. Le format json est le suivant🎜 :🎜🎜 🎜🎜🎜2. module json 🎜🎜🎜🎜1. Fonction 🎜🎜🎜1. Utiliser la chaîne jsON pour générer un objet python (chargement) 🎜🎜2. Formater python objet en chaîne ison (vidage) 🎜🎜2. Conversion du type de données🎜🎜Convertir les données du format
Python au format json
Il y aura des changements dans le type de données, comme indiqué dans le tableau suivant : 🎜Python | JSON | 🎜||
---|---|---|---|
JSON | Python | 🎜
---|---|
Méthode | Fonction | 🎜
---|---|
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!