Biblioteca json de la biblioteca estándar de Python

Tabla de contenido

1. Introducción

2. Método

3. Formato de datos


1. Introducción

Json, el nombre completo de JavaScript Object Notation, es un marcado de objetos JavaScript. Representa datos a través de una combinación de objetos y matrices. Aunque la estructura es simple, está altamente estructurada. Es un formato de intercambio de datos liviano. La aplicación más utilizada de Json es como formato de datos para la comunicación entre servidores web y clientes en AJAX. Hoy en día, también se usa comúnmente en solicitudes http, por lo que es natural aprender todo tipo de json.

2. Método

Se utiliza principalmente para codificar objetos de Python en formato json para salida o almacenamiento, y para decodificar objetos de formato json en objetos de Python.

método describir
json.volcado() Pase un objeto de Python, codifíquelo en formato json y guárdelo en la secuencia IO
json.volcados() Pase un objeto de Python, codifíquelo en formato json y guárdelo en str
json.cargar() Pase una secuencia de archivos en formato json y decodifíquela en un objeto de Python
json.cargas() Pase una cadena en formato json y decodifíquela en un objeto de Python

1.json.cargas()

Uso: pase una cadena en formato json y codifíquela en un objeto de Python

p.ej:

Una cadena en forma de JSON, que es de tipo str. Usamos json.loads para convertirla en una estructura de datos de Python y convertirla en una lista o diccionario, para que podamos operarla.

import json

data = '''
[{
    "name": "小明",
    "height": "170",
    "age": "18"
}, {
     "name": "小红",
    "height": "165",
    "age": "20"
}]
'''

# 打印data类型
print(type(data))
# json类型的数据转化为python类型的数据
new_data = json.loads(data)
# 打印data类型
print(type(new_data))

resultado de la operación:

 De esta forma podemos utilizar el índice para obtener el contenido correspondiente, por ejemplo, si queremos obtener el atributo de nombre en el primer elemento, podemos utilizar el siguiente método:

import json

data = '''
[{
    "name": "小明",
    "height": "170",
    "age": "18"
}, {
     "name": "小红",
    "height": "165",
    "age": "20"
}]
'''

# json类型的数据转化为python类型的数据
new_data = json.loads(data)
# 获取内容
name = new_data[0]['name']
new_name = new_data[0].get('name')
# 打印转换后data类型

print(name)
print(new_name)

resultado de la operación:

2.json.cargar()

Uso: Pase una secuencia de archivos en formato json y codifíquela en un objeto de Python

p.ej:

El método de carga opera en todo el objeto del archivo, aquí, el contenido de todo el objeto del archivo se convierte en objetos json. (La siguiente imagen es el objeto de operación de archivo)

import json

# 构建该文件的文件对象
with open('test1.json',encoding='utf-8')as fp:
    # 加载垓文件对象,转换为python类型的数据
    pyth_list = json.load(fp)
    print(pyth_list)
    print(type(pyth_list))
    print(type(pyth_list[0]))


resultado de la operación:

2.json.volcados()

Convertir datos de tipo Python en una cadena json

Insertar descripción de la imagen aquí

 función de volcado

import json

data = '''
[{
    "name": "小明",
    "height": "170",
    "age": "18"
}, {
     "name": "小红",
    "height": "165",
    "age": "20"
}]
'''

# 打印要来data类型
print(type(data))
# json类型的数据转化为python类型的数据
new_data = json.loads(data)

# 把python类型的数据转换成json字符串
lit = json.dumps(new_data)

# 打印转换后data类型
print(type(new_data))

print(type(lit))

resultado de la operación:

De hecho, el uso de cargas y volcados es el mismo: las cargas convierten datos de tipo json en datos de tipo python, mientras que los volcados convierten datos de tipo json en datos de tipo python. Equivale a una codificación y una decodificación.

2.json.dump()
almacena datos de tipo Python en un archivo en formato json

Insertar descripción de la imagen aquí

p.ej:

Para generar chino, también debe especificar el parámetro asegurar_ascii como Falso.

Encontramos un problema, es decir, después de convertirlo en una cadena json, la visualización china estaba confusa.
Esto se debe a que cuando se serializa json, la codificación predeterminada es ASCII y el chino es codificación Unicode. ASCII no contiene chino, por lo que aparecen caracteres confusos.
Si desea que json.dumps() muestre chino normalmente, simplemente agregue el parámetro asegurar_ascii=False , de modo que la codificación ASCII predeterminada no se use cuando se serialice json.

3. Formato de datos

Un objeto JSON se puede escribir de la siguiente manera:

[{
    "name": "小明",
    "height": "170",
    "age": "18"
}, {
     "name": "小红",
    "height": "165",
    "age": "20"
}]

Lo que está entre corchetes equivale a un tipo de lista. Cada elemento de la lista puede ser de cualquier tipo. En este ejemplo, es un tipo diccionario, entre corchetes.

JSON se puede combinar libremente a partir de las dos formas anteriores, se puede anidar infinitamente, tiene una estructura clara y es una excelente manera de intercambiar datos.

Supongo que te gusta

Origin blog.csdn.net/m0_63636799/article/details/130166379
Recomendado
Clasificación