1. ¿Qué es Json?
JSON (JavaScript Object Notation) es un formato ligero de intercambio de datos, es un subconjunto de JavaScript, fácil de leer y escribir.
El intercambio de datos entre el front-end y el back-end es en realidad la interacción de datos entre JS y Python.
Notas sobre JSON:
(1) El nombre debe estar entre comillas dobles (es decir: "").
(2) El valor puede ser una cadena, número, verdadero, falso, nulo, matriz de JavaScript o un subobjeto incluido en las comillas dobles.
2. La relación de mapeo entre el tipo de datos python y el tipo de datos json
Pitón |
JSON |
---|---|
dict | objeto |
lista, tupla | formación |
str, unicode | cuerda |
int, long, float | número |
Cierto | cierto |
Falso | falso |
Ninguna | nulo |
3. Métodos de uso común en json
Antes de usar el módulo json, primero debe importar la biblioteca json: import json
Método | Descripción |
json.dumps () | Codificación de objetos de Python en cadenas JSON |
json.loads () | Decodifica la cadena JSON codificada en objetos Python |
json.dump () | Serialice los tipos incorporados de Python en objetos json y escriba en archivos |
json.load () | Convierta los elementos de cadena en forma json del archivo en tipo Python |
Ejemplos:
3-1 json.dumps ()
import json
data = {'name':'nanbei','age':18}
#将Python对象编码成json字符串
print(json.dumps(data))
El resultado:
{"name": "nanbei", "age": 18}
Nota: Aquí podemos ver que la comilla simple original se ha convertido en comilla doble
3-2 json.loads ()
import json
data = {'name':'nanbei','age':18}
#将Python对象编码成json字符串
#print(json.dumps(data))
#将json字符串编码成Python对象
a = json.dumps(data)
print(json.loads(a))
El resultado:
{'name': 'nanbei', 'age': 18}
Aquí hay un ejemplo de tuplas y listas:
import json
data = (1,2,3,4)
data_json = [1,2,3,4]
#将Python对象编码成json字符串
print(json.dumps(data))
print(json.dumps(data_json))
#将json字符串编码成Python对象
a = json.dumps(data)
b = json.dumps(data_json)
print(json.loads(a))
print(json.loads(b))
El resultado:
[1, 2, 3, 4]
[1, 2, 3, 4]
[1, 2, 3, 4]
[1, 2, 3, 4]
Como puede ver, tanto la tupla como la lista se analizan como una matriz.
3-3 json.dump ()
import json
data = {
'nanbei':'haha',
'a':[1,2,3,4],
'b':(1,2,3)
}
with open('json_test.txt','w+') as f:
json.dump(data,f)
Ver resultados:
3-4 json.load ()
import json
data = {
'nanbei':'haha',
'a':[1,2,3,4],
'b':(1,2,3)
}
with open('json_test.txt','w+') as f:
json.dump(data,f)
with open('json_test.txt','r+') as f:
print(json.load(f))
El resultado:
{'a': [1, 2, 3, 4], 'b': [1, 2, 3], 'nanbei': 'haha'}
4. Parámetros detallados:
dump (obj, skipkeys = False, sure_ascii = True, check_circular = True, allow_nan = True, cls = None, indent = None, separators = None, default = None, sort_keys = False, ** kw):
# Función: Convertir objetos Python en objetos JSON
# skipkeys: si es True, solo puede ser un objeto de diccionario, de lo contrario TypeError, el valor predeterminado es False
# sure_ascii: determina si es una codificación ASCII
# check_circular: verificación de tipo cíclico, si es Verdadero
# allow_nan: determina si es un valor permitido
# sangría: imprimir, presentar e sangrar de una manera hermosa
# separadores: separadores de objetos, el valor predeterminado es,
# codificación: método de codificación, el valor predeterminado es utf-8
# sort_keys: si es un objeto de diccionario, si se selecciona True, se ordenará de acuerdo con el código ASCII de la clave
Para el volcado, solo un parámetro fp más
dump (obj, fp, skipkeys = False, sure_ascii = True, check_circular = True, allow_nan = True, cls = None, indent = None, separators = None, default = None, sort_keys = False, ** kw)
Serialice `` obj`` como una secuencia con formato JSON a `` fp`` (un objeto similar a un archivo `` .write () '').
En pocas palabras, dump requiere un parámetro similar a un puntero de archivo (no un puntero real, que se puede llamar un objeto de archivo), combinado con operaciones de archivo, es decir, primero convierta un objeto de archivo de Python en una cadena json y luego guárdelo en el archivo. . .