¿Cuál es la diferencia entre json.dumps
y json.load
?
Según tengo entendido, uno carga JSON en un diccionario y otro carga en objetos.
dumps
toma un objeto y produce una cadena:
>>> a = {'foo': 3}
>>> json.dumps(a)
'{"foo": 3}'
load
tomaría un objeto similar a un archivo, leería los datos de ese objeto y usaría esa cadena para crear un objeto:
with open('file.json') as fh:
a = json.load(fh)
Tenga en cuenta que dump
y load
convertir entre archivos y objetos, mientras que dumps
y loads
convertir entre cadenas y objetos. Puede pensar en las s
funciones -less como envoltorios alrededor de las s
funciones:
def dump(obj, fh):
fh.write(dumps(obj))
def load(fh):
return loads(fh.read())
object
en el sentido de "algo de un tipo que no seastr
". Una cadena como'"foo"'
se decodifica al objeto Python ; una cadena como se decodifica a la lista de Python , etcstr
'foo'
"[1,2,3]"
[1,2,3]
dumps()
- codificación de objetos JSONdump()
- escritura de cadena codificada en archivoloads()
- Decodificar la cadena JSONload()
- Decodificar mientras se lee el archivo JSONjson carga -> devuelve un objeto de una cadena que representa un objeto json.
json vuelca -> devuelve una cadena que representa un objeto json de un objeto.
cargar y volcar -> leer / escribir desde / al archivo en lugar de cadena
fuente