Qual é a diferença entre json.dumps
e json.load
?
Pelo que entendi, um carrega JSON em um dicionário e outro carrega em objetos.
dumps
pega um objeto e produz uma string:
>>> a = {'foo': 3}
>>> json.dumps(a)
'{"foo": 3}'
load
pegaria um objeto parecido com um arquivo, leria os dados desse objeto e usaria essa sequência para criar um objeto:
with open('file.json') as fh:
a = json.load(fh)
Observe que dump
e load
converta entre arquivos e objetos, enquanto dumps
e loads
converte entre strings e objetos. Você pode pensar nas s
funções -less como wrappers em torno das s
funções:
def dump(obj, fh):
fh.write(dumps(obj))
def load(fh):
return loads(fh.read())
object
no sentido de "algo de um tipo diferente destr
". Uma string como'"foo"'
é decodificada para o objeto Python ; uma string como é decodificado à lista Python , etc.str
'foo'
"[1,2,3]"
[1,2,3]
dumps()
- codificação para objetos JSONdump()
- gravação de seqüência de caracteres codificada no arquivoloads()
- decodificação da seqüência de caracteres JSONload()
- decodificação enquanto o arquivo JSON é lidojson load -> retorna um objeto de uma string que representa um objeto json.
json dumps -> retorna uma string representando um objeto json de um objeto.
load and dump -> leitura / gravação de / para arquivo em vez de string
fonte