Operaciones JSON en Python

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. . .

17 artículos originales publicados · Me gusta1 · Visitas 819

Supongo que te gusta

Origin blog.csdn.net/weixin_45433031/article/details/105060973
Recomendado
Clasificación