1. Descripción general de JSON
JSON (JavaScript Object Notation, JS Object Notation) es un formato de intercambio de datos ligero. La estructura jerárquica concisa y clara hace que JSON sea un lenguaje de intercambio de datos ideal.
Formatos de datos compatibles con JSON:
- Objeto (diccionario): llaves
- Matriz (lista): corchetes
- Tipo de cadena: se deben usar comillas dobles, no se pueden usar comillas simples
- Entero, punto flotante, booleano, nulo, etc.
- Use comas para separar varios datos
- json es esencialmente una cadena
Analizador json en línea: http://json.cn/
{"Person": [{"username": "张三", "age":18}]}
json :
{
"Person":[
{
"username":"张三",
"age":18
}
]
}
2. Funciones de uso común de json
2.1 Convierta el objeto python en una cadena json
- volcados : convierte objetos de Python en cadenas de formato json;
- el volcado : convertir el objeto python json en una cadena de formato, y también puede recibir un puntero de archivo, los parámetros de fp se pueden escribir en un archivo en
Ambos métodos tienen un parámetro, secure_ascii es True de forma predeterminada, lo que significa que solo se pueden almacenar caracteres ASCII de forma predeterminada; si desea almacenar chino, establezca el parámetro secure_ascii en False.
Al escribir objetos de Python, no necesita prestar más atención para seguir los requisitos de formato json, simplemente escriba Python correctamente, porque la función dumps / dump convertirá automáticamente Python al formato json.
import json
books = [
{
"name": "三国演义",
"price": 18.8
},
{
"name": "水浒传",
"price": 19.9
}
]
# dumps
result = json.dumps(books, ensure_ascii=False)
print(result, type(result))
#dump
fp = open('books.json', 'w', encoding='utf-8')
json.dump(books, fp, ensure_ascii=False)
fp.close()
#open 之后需要手动close文件
2.2 Convierta la cadena json en un objeto python
- cargas : convierte cadenas json en objetos python
- cargar : convierta la cadena json en un objeto python, y puede obtener la cadena json directamente desde el archivo
import json
json_str = '[{"name": "三国演义", "price": 18.8}, {"name": "水浒传", "price": 19.9}]'
print(type(json_str))
result = json.loads(json_str)
print(result)
print(type(result))
print('*'*20)
# load
with open('books.json', 'r', encoding='utf-8') as fp:
result = json.load(fp)
print(result)
print(type(result))
Use con abrir para abrir el archivo sin cerrarlo manualmente
Y al obtener el contenido del archivo, lo mejor es especificar el código de análisis, de lo contrario será fácil informar errores